{
  "contractName": "ERC1155CreatorImplementation",
  "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": "account",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "ApprovalForAll",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": 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": "operator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        }
      ],
      "name": "TransferBatch",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        }
      ],
      "name": "TransferSingle",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "string",
          "name": "value",
          "type": "string"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "URI",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "VERSION",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "admin",
          "type": "address"
        }
      ],
      "name": "approveAdmin",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "balanceOf",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "accounts",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "ids",
          "type": "uint256[]"
        }
      ],
      "name": "balanceOfBatch",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "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": [],
      "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": "account",
          "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": [],
      "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": "ids",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeBatchTransferFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "from",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "safeTransferFrom",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "operator",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "setApprovalForAll",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "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": "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[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        },
        {
          "internalType": "string[]",
          "name": "uris",
          "type": "string[]"
        }
      ],
      "name": "mintBaseNew",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "to",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "name": "mintBaseExisting",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "to",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        },
        {
          "internalType": "string[]",
          "name": "uris",
          "type": "string[]"
        }
      ],
      "name": "mintExtensionNew",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address[]",
          "name": "to",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "type": "uint256[]"
        }
      ],
      "name": "mintExtensionExisting",
      "outputs": [],
      "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": "address",
          "name": "account",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "tokenIds",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256[]",
          "name": "amounts",
          "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": "uri",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "totalSupply",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "extension",
          "type": "address"
        }
      ],
      "name": "setApproveTransfer",
      "outputs": [],
      "stateMutability": "nonpayable",
      "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\":\"account\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"ApprovalForAll\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":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\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"TransferBatch\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"}],\"name\":\"TransferSingle\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"string\",\"name\":\"value\",\"type\":\"string\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"URI\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"VERSION\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"approveAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"}],\"name\":\"balanceOf\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"accounts\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"ids\",\"type\":\"uint256[]\"}],\"name\":\"balanceOfBatch\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"}],\"name\":\"blacklistExtension\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"account\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"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\":[],\"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\":\"account\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"}],\"name\":\"isApprovedForAll\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"to\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"mintBaseExisting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"to\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"string[]\",\"name\":\"uris\",\"type\":\"string[]\"}],\"name\":\"mintBaseNew\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"to\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"tokenIds\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"}],\"name\":\"mintExtensionExisting\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address[]\",\"name\":\"to\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"string[]\",\"name\":\"uris\",\"type\":\"string[]\"}],\"name\":\"mintExtensionNew\",\"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\":\"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\":\"ids\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256[]\",\"name\":\"amounts\",\"type\":\"uint256[]\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeBatchTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"from\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"id\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"amount\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"safeTransferFrom\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"operator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"setApprovalForAll\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"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\":\"tokenExtension\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"extension\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"totalSupply\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"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\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"}],\"name\":\"uri\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"}],\"devdoc\":{\"details\":\"ERC1155Creator implementation\",\"events\":{\"ApprovalForAll(address,address,bool)\":{\"details\":\"Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`.\"},\"Initialized(uint8)\":{\"details\":\"Triggered when the contract has been initialized or reinitialized.\"},\"TransferBatch(address,address,address,uint256[],uint256[])\":{\"details\":\"Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers.\"},\"TransferSingle(address,address,address,uint256,uint256)\":{\"details\":\"Emitted when `value` tokens of token type `id` are transferred from `from` to `to` by `operator`.\"},\"URI(string,uint256)\":{\"details\":\"Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}.\"}},\"kind\":\"dev\",\"methods\":{\"approveAdmin(address)\":{\"details\":\"See {IAdminControl-approveAdmin}.\"},\"balanceOf(address,uint256)\":{\"details\":\"See {IERC1155-balanceOf}. Requirements: - `account` cannot be the zero address.\"},\"balanceOfBatch(address[],uint256[])\":{\"details\":\"See {IERC1155-balanceOfBatch}. Requirements: - `accounts` and `ids` must have the same length.\"},\"blacklistExtension(address)\":{\"details\":\"See {ICreatorCore-blacklistExtension}.\"},\"burn(address,uint256[],uint256[])\":{\"details\":\"See {IERC1155CreatorCore-burn}.\"},\"getAdmins()\":{\"details\":\"See {IAdminControl-getAdmins}.\"},\"getApproveTransfer()\":{\"details\":\"See {ICreatorCore-getApproveTransfer}.\"},\"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 {IERC1155-isApprovedForAll}.\"},\"mintBaseExisting(address[],uint256[],uint256[])\":{\"details\":\"See {IERC1155CreatorCore-mintBaseExisting}.\"},\"mintBaseNew(address[],uint256[],string[])\":{\"details\":\"See {IERC1155CreatorCore-mintBaseNew}.\"},\"mintExtensionExisting(address[],uint256[],uint256[])\":{\"details\":\"See {IERC1155CreatorCore-mintExtensionExisting}.\"},\"mintExtensionNew(address[],uint256[],string[])\":{\"details\":\"See {IERC1155CreatorCore-mintExtensionNew}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"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}.\"},\"safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)\":{\"details\":\"See {IERC1155-safeBatchTransferFrom}.\"},\"safeTransferFrom(address,address,uint256,uint256,bytes)\":{\"details\":\"See {IERC1155-safeTransferFrom}.\"},\"setApprovalForAll(address,bool)\":{\"details\":\"See {IERC1155-setApprovalForAll}.\"},\"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}.\"},\"tokenExtension(uint256)\":{\"details\":\"See {IERC1155CreatorCore-tokenExtension}.\"},\"totalSupply(uint256)\":{\"details\":\"Total amount of tokens in with a given id.\"},\"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}.\"},\"uri(uint256)\":{\"details\":\"See {IERC1155MetadataURI-uri}.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"initialize(string,string)\":{\"notice\":\"Initializer\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/ERC1155CreatorImplementation.sol\":\"ERC1155CreatorImplementation\"},\"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/ERC1155/IERC1155.sol\":{\"keccak256\":\"0x6392f2cfe3a5ee802227fe7a2dfd47096d881aec89bddd214b35c5b46d3cd941\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bd9c47a375639888e726a99da718890ba16d17d7ad9eacb0ccc892d46d1b3ee0\",\"dweb:/ipfs/Qmb41W5RUjy2sWg49A2rMnxekSeEk6SvGyJL5tyCCSr7un\"]},\"@openzeppelin/contracts/token/ERC1155/IERC1155Receiver.sol\":{\"keccak256\":\"0xeb373f1fdc7b755c6a750123a9b9e3a8a02c1470042fd6505d875000a80bde0b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://0e28648f994abf1d6bc345644a361cc0b7efa544f8bc0c8ec26011fed85a91ec\",\"dweb:/ipfs/QmVVE7AiRjKaQYYji7TkjmTeVzGpNmms5eoxqTCfvvpj6D\"]},\"@openzeppelin/contracts/token/ERC1155/extensions/IERC1155MetadataURI.sol\":{\"keccak256\":\"0xa66d18b9a85458d28fc3304717964502ae36f7f8a2ff35bc83f6f85d74b03574\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://e46c80ea068989111d6103e5521223f9ef337e93de76deed8b03f75c6f7b2797\",\"dweb:/ipfs/QmNoSE6knNfFncdDDLTb3fGR6oSQty1srG96Vsx3E9wQdw\"]},\"@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/ERC1155CreatorImplementation.sol\":{\"keccak256\":\"0x59059aa903e551432b7825495a1c92547ad41994910666d7c48d4791a7ef3ede\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7ff7c8b38529f430c38683dbfe33008a544fcd8731f618632c33289001a881d5\",\"dweb:/ipfs/QmdZ2nm8ovNtHbGiu7HVmrbd61MpyAs29G5GBLXbss4Kbo\"]},\"project:/contracts/core/CreatorCore.sol\":{\"keccak256\":\"0x6e8b20c32d6122ed1d23af683260ea242f1197dc95b063b63ccfac5b90e65f31\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://bffa862c93d614e9d5727ff595cb8595dbb9eae43bfdf06f65c7331aec09c268\",\"dweb:/ipfs/QmUsPC55S2vdfQWL3HQTYDz66yRFhdbPGCjr1NYyxBT83P\"]},\"project:/contracts/core/ERC1155CreatorCore.sol\":{\"keccak256\":\"0x6f0fac34514386543d742675a6100bad59ced735324f324b21eb4c9571e0d281\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://fd6e0da4b354afedc59a51af11d506ca2ba31483757b71b4caad7b9586212dc4\",\"dweb:/ipfs/Qmf3wbvgy87Xgirt4XLcWcmrj3Gexf9frFtPyZNtyYxXSd\"]},\"project:/contracts/core/ICreatorCore.sol\":{\"keccak256\":\"0x6bdcb757953594d3a259f1d68ec3d208ca42dba02115f08a6e32e2936ccb0349\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd1853dabcd57eb9b735b3991cf59259cd28cdeca1353495b5c59dc0db2d85df\",\"dweb:/ipfs/QmfJLFZ7RoMvdR7kJLR7QmqreS1x5VNJSa7xvjVsC4mXte\"]},\"project:/contracts/core/IERC1155CreatorCore.sol\":{\"keccak256\":\"0xc91d0050b622fbb41b7516c6a8c75ab6236e6a52feab681d36fb75b8b49fc8c0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f045081bb40c91837c076530bb07b9f8b7fa77cbd1191748a12920f01f1678f8\",\"dweb:/ipfs/QmP5kx53wBz2eUqZV26ttYJmsHP7R9n3rF6dAbTjVPh5gL\"]},\"project:/contracts/extensions/ERC1155/IERC1155CreatorExtensionApproveTransfer.sol\":{\"keccak256\":\"0x721390972cc45ff82d97046f5b9e560369a4bf25ae1db2ee0998c8dfc484b782\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://f564087ce1ed42a2dbb0bd4dd463643ebb51dc8662c6a8ff34b073d94f38ca24\",\"dweb:/ipfs/QmNyZnZLe3dTxpCVLxA2hKamUjDUhds4BjSb7EvegS52yS\"]},\"project:/contracts/extensions/ERC1155/IERC1155CreatorExtensionBurnable.sol\":{\"keccak256\":\"0xc274a67fd639f490659aae3c188b7eaef5f819367f61b058e547681c1410e22f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://2862472b3f417e447faa442cf27a1ea33cea678ff4f64b4cc99102d5d1e6bfb8\",\"dweb:/ipfs/QmepVRQniqf5hpSWgptfoxbYw546s9L6uo9PiobsStxJ7D\"]},\"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/ERC1155/IERC1155CreatorMintPermissions.sol\":{\"keccak256\":\"0x0cf037e3da9a47dab1b0c287d128497f6e28bdbadb4b66f7949a63f8fa144de0\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://627c99459b5e9bf311d7b463ffefc405ca7f257a518ad7b6ea3e14859998bb25\",\"dweb:/ipfs/QmaPeix3g2ZDAt662biM5pkAEJ54TNH4jCqeJd46KhEguP\"]},\"project:/contracts/token/ERC1155/ERC1155Core.sol\":{\"keccak256\":\"0x3c2d6f41b6293f667326ac028729fe2f6b4f7c35af334c1136cd8d7192187c8b\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://db91053b42e25febef3cd2fc9f82a3565fcdc7a56775005bc5bca805db18b8a9\",\"dweb:/ipfs/QmdDDgyiYqM5EZg5n4XA1kWoGfxVKk6CooQUzfTWj1pGNe\"]},\"project:/contracts/token/ERC1155/ERC1155Upgradeable.sol\":{\"keccak256\":\"0xed8d40395c42b515814a11ea1f355c128befddc8c628a9b0ee62a125804fe935\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://453b0fd87d6f77923876f406eb862cb9c941d3bf914f22fb81721a6162a6fcdc\",\"dweb:/ipfs/QmXuohHWNRbFXe5RvwPZQHtMgRkanRcSCX5wMd2TMRUJ6N\"]}},\"version\":1}",
  "bytecode": "0x60806040526000606c553480156200001657600080fd5b506001606555620000266200002c565b620000ee565b600054610100900460ff1615620000995760405162461bcd60e51b815260206004820152602760248201527f496e697469616c697a61626c653a20636f6e747261637420697320696e697469604482015266616c697a696e6760c81b606482015260840160405180910390fd5b60005460ff9081161015620000ec576000805460ff191660ff9081179091556040519081527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a15b565b615db880620000fe6000396000f3fe608060405234801561001057600080fd5b506004361061026b5760003560e01c8063695c96e61161014d578063695c96e6146104a95780636d73e669146104bc578063715018a6146104cf57806382dcc0c8146104d757806383b7db63146104ea5780638c6e8472146104f25780638da5cb5b1461050557806395d89b411461050d57806399e0dd7c14610515578063a22cb46514610528578063aafb2d441461053b578063ac0c8cfa1461054e578063b0fe87c914610561578063b9c4d9fb14610574578063bb3bafd614610587578063bd85b039146105a8578063ce8aee9d146105c8578063d5a06d4c14610587578063e6c884dc146105db578063e92a89f6146105ee578063e985e9c514610601578063f0cdc49914610614578063f242432a14610627578063f2fde38b1461063a578063feeb5a9a1461064d578063ffa1ad741461066057600080fd5b8062fdd58e1461027057806301ffc9a71461029657806302e7afb7146102b957806306fdde03146102ce5780630e89341c146102e35780630ebd4c7f146102f6578063162094c41461031657806320e4afe21461032957806322f374d01461033c578063239be3171461035657806324d7806c146103695780632a55205a1461037c5780632d3456701461039d5780632eb2c2d6146103b057806330176e13146103c35780633071a0f9146103d657806331ae450b146103e9578063332dd1ae146103fe5780633db0f8ab146104115780633e6134b8146104245780633f0f37f6146104375780634cd88b761461044a5780634e1273f41461045d578063596798ad1461047057806361e5bc6b1461048357806366d1e9d014610496575b600080fd5b61028361027e36600461476b565b610668565b6040519081526020015b60405180910390f35b6102a96102a43660046147ad565b610703565b604051901515815260200161028d565b6102cc6102c73660046147ca565b61072c565b005b6102d6610778565b60405161028d9190614837565b6102d66102f136600461484a565b61080a565b61030961030436600461484a565b610815565b60405161028d919061489e565b6102cc6103243660046148f2565b610820565b6102cc610337366004614981565b610870565b606d546001600160a01b03165b60405161028d91906149fa565b61034961036436600461484a565b6108c4565b6102a96103773660046147ca565b61094d565b61038f61038a366004614a0e565b61097c565b60405161028d929190614a30565b6102cc6103ab3660046147ca565b610995565b6102cc6103be366004614ba2565b6109f2565b6102cc6103d1366004614c4f565b610a37565b6102cc6103e4366004614c90565b610a81565b6103f1610ad7565b60405161028d9190614d04565b6102cc61040c366004614d17565b610b85565b6102cc61041f366004614d82565b610bd9565b6102cc610432366004614c4f565b610d38565b6102cc610445366004614dcf565b610d4c565b6102cc610458366004614e36565b610da1565b61030961046b366004614e99565b610ec4565b6102cc61047e3660046147ca565b610fed565b6102cc610491366004614d17565b611036565b6102cc6104a4366004614c4f565b6110b5565b6102cc6104b7366004614f5b565b6110c7565b6102cc6104ca3660046147ca565b6111ef565b6102cc611247565b6102cc6104e5366004614ff4565b61125b565b6103f161126e565b610309610500366004614f5b565b61130e565b610349611345565b6102d6611354565b6102cc610523366004614c4f565b611363565b6102cc61053636600461504a565b6113ad565b6102cc610549366004614d17565b6113b8565b6102cc61055c366004615083565b61146f565b6102cc61056f366004614d82565b611481565b6103f161058236600461484a565b6114ce565b61059a61059536600461484a565b6114d9565b60405161028d9291906150a0565b6102836105b636600461484a565b6000908152607b602052604090205490565b6102cc6105d63660046147ca565b6114ee565b6102cc6105e9366004614f5b565b611537565b6102cc6105fc3660046148f2565b6115ee565b6102a961060f3660046150ce565b611601565b6102cc6106223660046150ce565b61162f565b6102cc6106353660046150fc565b611679565b6102cc6106483660046147ca565b6116be565b61030961065b366004614f5b565b611734565b610283600381565b60006001600160a01b0383166106d85760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b506000818152606a602090815260408083206001600160a01b03861684529091529020545b92915050565b600061070e8261178e565b8061071d575061071d826117b3565b806106fd57506106fd826117ee565b33610735611345565b6001600160a01b031614806107505750610750606633611823565b61076c5760405162461bcd60e51b81526004016106cf90615164565b61077581611848565b50565b606060688054610787906151a8565b80601f01602080910402602001604051908101604052809291908181526020018280546107b3906151a8565b80156108005780601f106107d557610100808354040283529160200191610800565b820191906000526020600020905b8154815290600101906020018083116107e357829003601f168201915b5050505050905090565b60606106fd82611954565b60606106fd82611bf0565b33610829611345565b6001600160a01b031614806108445750610844606633611823565b6108605760405162461bcd60e51b81526004016106cf90615164565b61086b838383611bfb565b505050565b33610879611345565b6001600160a01b031614806108945750610894606633611823565b6108b05760405162461bcd60e51b81526004016106cf90615164565b6108bd8585858585611c5f565b5050505050565b60006108cf82611ce6565b90506001600160a01b0381166109205760405162461bcd60e51b815260206004820152601660248201527527379032bc3a32b739b4b7b7103337b9103a37b5b2b760511b60448201526064016106cf565b61092b607082611823565b156109485760405162461bcd60e51b81526004016106cf906151dc565b919050565b6000816001600160a01b0316610961611345565b6001600160a01b031614806106fd57506106fd606683611823565b6000806109898484611d01565b915091505b9250929050565b61099d611dd7565b6109a8606682611823565b156107755760405133906001600160a01b038316907f7c0c3c84c67c85fcac635147348bfe374c24a1a93d0366d1cfe9d8853cbf89d590600090a36109ee606682611e36565b5050565b6001600160a01b038516331480610a0e5750610a0e8533611601565b610a2a5760405162461bcd60e51b81526004016106cf9061520b565b6108bd8585858585611e4b565b33610a40611345565b6001600160a01b03161480610a5b5750610a5b606633611823565b610a775760405162461bcd60e51b81526004016106cf90615164565b6109ee8282611fde565b33610a8a611345565b6001600160a01b03161480610aa55750610aa5606633611823565b610ac15760405162461bcd60e51b81526004016106cf90615164565b610aca83612013565b61086b838383600061203b565b6060610ae3606661212c565b6001600160401b03811115610afa57610afa614a49565b604051908082528060200260200182016040528015610b23578160200160208202803683370190505b50905060005b610b33606661212c565b811015610b8157610b45606682612136565b828281518110610b5757610b57615259565b6001600160a01b039092166020928302919091019091015280610b7981615285565b915050610b29565b5090565b33610b8e611345565b6001600160a01b03161480610ba95750610ba9606633611823565b610bc55760405162461bcd60e51b81526004016106cf90615164565b610bd3600085858585612142565b50505050565b610be161222f565b6001600160a01b038516331480610bfd5750610bfd8533611601565b610c495760405162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206973206e6f74206f776e6572206f7220617070726f7665640060448201526064016106cf565b828114610c685760405162461bcd60e51b81526004016106cf9061529e565b6001839003610cb357610cae8585856000818110610c8857610c88615259565b9050602002013584846000818110610ca257610ca2615259565b90506020020135612288565b610d21565b610d2185858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506040805160208089028281018201909352888252909350889250879182918501908490808284376000920191909152506122bb92505050565b610d2e8585858585612334565b6108bd6001606555565b610d40612496565b6109ee828260006124ec565b33610d55611345565b6001600160a01b03161480610d705750610d70606633611823565b610d8c5760405162461bcd60e51b81526004016106cf90615164565b610d9584612013565b610bd38484848461203b565b600054610100900460ff1615808015610dc15750600054600160ff909116105b80610de25750610dd030612529565b158015610de2575060005460ff166001145b610e455760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106cf565b6000805460ff191660011790558015610e68576000805461ff0019166101001790555b610e728383612538565b610e7a612569565b801561086b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b60608151835114610f295760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b60648201526084016106cf565b600083516001600160401b03811115610f4457610f44614a49565b604051908082528060200260200182016040528015610f6d578160200160208202803683370190505b50905060005b8451811015610fe557610fb8858281518110610f9157610f91615259565b6020026020010151858381518110610fab57610fab615259565b6020026020010151610668565b828281518110610fca57610fca615259565b6020908102919091010152610fde81615285565b9050610f73565b509392505050565b33610ff6611345565b6001600160a01b031614806110115750611011606633611823565b61102d5760405162461bcd60e51b81526004016106cf90615164565b61077581612598565b61103e612496565b82811461105d5760405162461bcd60e51b81526004016106cf9061529e565b60005b838110156108bd576110ad85858381811061107d5761107d615259565b9050602002013584848481811061109657611096615259565b90506020028101906110a891906152c5565b6125ee565b600101611060565b6110bd612496565b6109ee82826125f8565b6110cf61222f565b336110d8611345565b6001600160a01b031614806110f357506110f3606633611823565b61110f5760405162461bcd60e51b81526004016106cf90615164565b60005b838110156111cc57600085858381811061112e5761112e615259565b9050602002013590506000811180156111495750606c548111155b6111655760405162461bcd60e51b81526004016106cf9061530b565b600061117082611ce6565b6001600160a01b0316146111c35760405162461bcd60e51b815260206004820152601a6024820152792a37b5b2b71031b932b0ba32b210313c9032bc3a32b739b4b7b760311b60448201526064016106cf565b50600101611112565b506111dd6000878787878787612612565b6111e76001606555565b505050505050565b6111f7611dd7565b611202606682611823565b6107755760405133906001600160a01b038316907f7e1a1a08d52e4ba0e21554733d66165fd5151f99460116223d9e3a608eec5cb190600090a36109ee6066826129ba565b61124f611dd7565b61125960006129cf565b565b611263612496565b61086b8383836124ec565b606061127a606e61212c565b6001600160401b0381111561129157611291614a49565b6040519080825280602002602001820160405280156112ba578160200160208202803683370190505b50905060005b6112ca606e61212c565b811015610b81576112dc606e82612136565b8282815181106112ee576112ee615259565b6001600160a01b03909216602092830291909101909101526001016112c0565b606061131861222f565b611320612496565b61132f33888888888888612a21565b905061133b6001606555565b9695505050505050565b6033546001600160a01b031690565b606060698054610787906151a8565b3361136c611345565b6001600160a01b031614806113875750611387606633611823565b6113a35760405162461bcd60e51b81526004016106cf90615164565b6109ee8282612e68565b6109ee338383612e9d565b336113c1611345565b6001600160a01b031614806113dc57506113dc606633611823565b6113f85760405162461bcd60e51b81526004016106cf90615164565b8281146114175760405162461bcd60e51b81526004016106cf9061529e565b60005b838110156108bd5761146785858381811061143757611437615259565b9050602002013584848481811061145057611450615259565b905060200281019061146291906152c5565b611bfb565b60010161141a565b611477612496565b6107753382612f7d565b3361148a611345565b6001600160a01b031614806114a557506114a5606633611823565b6114c15760405162461bcd60e51b81526004016106cf90615164565b6108bd8585858585612142565b60606106fd82612ff5565b6060806114e583613007565b91509150915091565b336114f7611345565b6001600160a01b031614806115125750611512606633611823565b61152e5760405162461bcd60e51b81526004016106cf90615164565b610775816133b5565b61153f61222f565b611547612496565b60005b838110156115de573361157486868481811061156857611568615259565b90506020020135611ce6565b6001600160a01b0316146115d65760405162461bcd60e51b815260206004820152602360248201527f546f6b656e206e6f742063726561746564206279207468697320657874656e7360448201526234b7b760e91b60648201526084016106cf565b60010161154a565b506111dd33878787878787612612565b6115f6612496565b61086b8383836125ee565b6001600160a01b039182166000908152606b6020908152604080832093909416825291909152205460ff1690565b33611638611345565b6001600160a01b031614806116535750611653606633611823565b61166f5760405162461bcd60e51b81526004016106cf90615164565b6109ee82826133f6565b6001600160a01b03851633148061169557506116958533611601565b6116b15760405162461bcd60e51b81526004016106cf9061520b565b6108bd858585858561351f565b6116c6611dd7565b6001600160a01b03811661172b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106cf565b610775816129cf565b606061173e61222f565b33611747611345565b6001600160a01b031614806117625750611762606633611823565b61177e5760405162461bcd60e51b81526004016106cf90615164565b61132f6000888888888888612a21565b60006001600160e01b031982166301f4921160e61b14806106fd57506106fd82613649565b60006001600160e01b03198216636cdb3d1360e11b148061071d57506001600160e01b031982166303a24d0760e21b14806106fd57506106fd825b60006001600160e01b03198216632a9f3abf60e11b14806106fd57506301ffc9a760e01b6001600160e01b03198316146106fd565b6001600160a01b038116600090815260018301602052604081205415155b9392505050565b6001600160a01b0381161580159061186957506001600160a01b0381163014155b6118b15760405162461bcd60e51b815260206004820152601960248201527821b0b73737ba10313630b1b5b634b9ba103cb7bab939b2b63360391b60448201526064016106cf565b6118bc606e82611823565b156119045760405133906001600160a01b038316907fd19cf84cf0fec6bec9ddfa29c63adf83a55707c712f32c8285d6180a7890147990600090a3611902606e82611e36565b505b61190f607082611823565b6107755760405133906001600160a01b038316907f05ac7bc5a606cd92a63365f9fda244499b9add0526b22d99937b6bd88181059c90600090a36109ee6070826129ba565b60606000821180156119685750606c548211155b6119845760405162461bcd60e51b81526004016106cf9061530b565b600061198f83611ce6565b905061199c607082611823565b156119b95760405162461bcd60e51b81526004016106cf906151dc565b600083815260756020526040902080546119d2906151a8565b159050611aec576001600160a01b038116600090815260746020526040902080546119fc906151a8565b159050611a4d576001600160a01b038116600090815260746020908152604080832086845260758352928190209051611a369392016153a5565b604051602081830303815290604052915050919050565b60008381526075602052604090208054611a66906151a8565b80601f0160208091040260200160405190810160405280929190818152602001828054611a92906151a8565b8015611adf5780601f10611ab457610100808354040283529160200191611adf565b820191906000526020600020905b815481529060010190602001808311611ac257829003601f168201915b5050505050915050919050565b611afd8163e9dc637560e01b6136fa565b15611b755760405163e9dc637560e01b81526001600160a01b0382169063e9dc637590611b309030908790600401614a30565b600060405180830381865afa158015611b4d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261184191908101906153c2565b6001600160a01b03811660009081526073602052604090205460ff16611bc7576001600160a01b0381166000908152607260205260409020611bb684613716565b604051602001611a36929190615439565b6001600160a01b03811660009081526072602052604090208054611a66906151a8565b50919050565b606061184182613007565b600083118015611c0d5750606c548311155b8015611c2a57506000611c1f84611ce6565b6001600160a01b0316145b611c465760405162461bcd60e51b81526004016106cf9061530b565b6000838152607560205260409020610bd38284836154b9565b611c6b848484846137a8565b6000858152607760205260408120611c829161471e565b611ca184848484607760008b815260200190815260200160002061384d565b847fabb46fe0761d77584bde75697647804ffd8113abd4d8d06bc664150395eccdee85858585604051611cd794939291906155a4565b60405180910390a25050505050565b6000908152607a60205260409020546001600160a01b031690565b600080600080611d1086613007565b91509150600182511115611d655760405162461bcd60e51b815260206004820152601c60248201527b26b7b932903a3430b71018903937bcb0b63a3c903932b1b2b4bb32b960211b60448201526064016106cf565b8151600003611d7c5730600093509350505061098e565b81600081518110611d8f57611d8f615259565b60200260200101516127108683600081518110611dae57611dae615259565b6020026020010151611dc09190615607565b611dca919061561e565b9350935050509250929050565b33611de0611345565b6001600160a01b0316146112595760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106cf565b6000611841836001600160a01b038416613908565b8151835114611e6c5760405162461bcd60e51b81526004016106cf90615640565b6001600160a01b038416611e925760405162461bcd60e51b81526004016106cf90615688565b33611ea18187878787876139fb565b60005b8451811015611f8a576000858281518110611ec157611ec1615259565b602002602001015190506000858381518110611edf57611edf615259565b6020908102919091018101516000848152606a835260408082206001600160a01b038e168352909352919091205490915081811015611f305760405162461bcd60e51b81526004016106cf906156cd565b6000838152606a602090815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290611f6f908490615717565b9250508190555050505080611f8390615285565b9050611ea4565b50846001600160a01b0316866001600160a01b0316826001600160a01b0316600080516020615d438339815191528787604051611fc892919061572a565b60405180910390a46111e7818787878787613a07565b6000805260726020527fb5ad54240dc61c51d3a3e8d3f925722e010966ae263d67344c5fb60bddebddae61086b8284836154b9565b61201e607082611823565b156107755760405162461bcd60e51b81526004016106cf906151dc565b6001600160a01b03841630148015906120615750612061846001600160a01b0316612529565b6120975760405162461bcd60e51b8152602060048201526007602482015266125b9d985b1a5960ca1b60448201526064016106cf565b60405133906001600160a01b038616907fd8cb8ba4086944eabf43c5535b7712015e4d4c714b24bf812c040ea5b7a3e42a90600090a36001600160a01b03841660009081526072602052604090206120f08385836154b9565b506001600160a01b0384166000908152607360205260409020805460ff1916821515179055612120606e856129ba565b50610bd3846001612f7d565b60006106fd825490565b60006118418383613b69565b61214e848484846137a8565b6001600160a01b038516600090815260766020526040812061216f9161471e565b6121a084848484607660008b6001600160a01b03166001600160a01b0316815260200190815260200160002061384d565b6001600160a01b0385166121f0577f2b6849d5976d799a5b0ca4dfd6b40a3d7afe9ea72c091fa01a958594f9a2659b848484846040516121e394939291906155a4565b60405180910390a16108bd565b846001600160a01b03167f535a93d2cb000582c0ebeaa9be4890ec6a287f98eb2df00c54c300612fd78d8f85858585604051611cd794939291906155a4565b6002606554036122815760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016106cf565b6002606555565b612293838383613b93565b6000828152607b6020526040812080548392906122b190849061573d565b9091555050505050565b6122c6838383613c9d565b60005b8251811015610bd3578181815181106122e4576122e4615259565b6020026020010151607b600085848151811061230257612302615259565b602002602001015181526020019081526020016000206000828254612327919061573d565b90915550506001016122c9565b826123515760405162461bcd60e51b81526004016106cf9061529e565b6000607a60008686600081811061236a5761236a615259565b602090810292909201358352508101919091526040016000908120546001600160a01b031691505b8481101561240257816001600160a01b0316607a60008888858181106123ba576123ba615259565b60209081029290920135835250810191909152604001600020546001600160a01b0316146123fa5760405162461bcd60e51b81526004016106cf90615750565b600101612392565b506001600160a01b038116156111e757612423816303dc6f6560e51b6136fa565b156111e7576040516303dc6f6560e51b81526001600160a01b03821690637b8deca09061245c9089908990899089908990600401615786565b600060405180830381600087803b15801561247657600080fd5b505af115801561248a573d6000803e3d6000fd5b50505050505050505050565b6124a1606e33611823565b6112595760405162461bcd60e51b815260206004820152601c60248201527b26bab9ba103132903932b3b4b9ba32b932b21032bc3a32b739b4b7b760211b60448201526064016106cf565b3360009081526072602052604090206125068385836154b9565b50336000908152607360205260409020805460ff19169115159190911790555050565b6001600160a01b03163b151590565b600054610100900460ff1661255f5760405162461bcd60e51b81526004016106cf906157be565b6109ee8282613e2a565b600054610100900460ff166125905760405162461bcd60e51b81526004016106cf906157be565b611259613e6a565b606d80546001600160a01b0319166001600160a01b0383161790556040517f959c0e47a2fe3cf01e237ba4892e2cc3194d77cbfb33e434e40873225d6b595f906125e39083906149fa565b60405180910390a150565b33611c1f84611ce6565b33600090815260746020526040902061086b8284836154b9565b6001600160a01b038716156126bf576126bf86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a0282810182019093528982529093508992508891829185019084908082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250613e9a92505050565b6001851480156126cf5750600183145b80156126db5750600181145b1561275c57612757868660008181106126f6576126f6615259565b905060200201602081019061270b91906147ca565b8585600081811061271e5761271e615259565b905060200201358484600081811061273857612738615259565b6040805160008152602080820190925291029290920135919050613f29565b6129b1565b60018514801561276b57508281145b15612835576127578686600081811061278657612786615259565b905060200201602081019061279b91906147ca565b8585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060408051602080890282810182019093528882529093508892508791829185019084908082843760009201829052509250612805915050565b6040519080825280601f01601f19166020018201604052801561282f576020820181803683370190505b50613f5e565b6001831480156128455750600181145b156128ba5760005b858110156128b4576128ac87878381811061286a5761286a615259565b905060200201602081019061287f91906147ca565b8686600081811061289257612892615259565b905060200201358585600081811061273857612738615259565b60010161284d565b506129b1565b6001831480156128c957508481145b156129375760005b858110156128b45761292f8787838181106128ee576128ee615259565b905060200201602081019061290391906147ca565b8686600081811061291657612916615259565b9050602002013585858581811061273857612738615259565b6001016128d1565b848314801561294557508481145b156129995760005b858110156128b45761299187878381811061296a5761296a615259565b905060200201602081019061297f91906147ca565b86868481811061291657612916615259565b60010161294d565b60405162461bcd60e51b81526004016106cf9061529e565b50505050505050565b6000611841836001600160a01b038416613fd8565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60606001861115612a8757604080516001808252818301909252906020808301908036833701905050905060018211801590612a6657506001841480612a6657508584145b612a825760405162461bcd60e51b81526004016106cf9061529e565b612af3565b836001600160401b03811115612a9f57612a9f614a49565b604051908082528060200260200182016040528015612ac8578160200160208202803683370190505b509050811580612ad757508382145b612af35760405162461bcd60e51b81526004016106cf9061529e565b60005b8151811015612b6a57606c60008154612b0e90615285565b90915550606c548251839083908110612b2957612b29615259565b602090810291909101810191909152606c546000908152607a9091526040902080546001600160a01b0319166001600160a01b038b16179055600101612af6565b506001600160a01b03881615612bea57612bea87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808b0282810182019093528a82528794509092508a918a91829190850190849080828437600092019190915250613e9a92505050565b600186148015612bfb575080516001145b15612c5e57612c5987876000818110612c1657612c16615259565b9050602002016020810190612c2b91906147ca565b82600081518110612c3e57612c3e615259565b60200260200101518787600081811061273857612738615259565b612db0565b6001861115612d4b576001849003612ce15760005b86811015612cdb57612cd3888883818110612c9057612c90615259565b9050602002016020810190612ca591906147ca565b83600081518110612cb857612cb8615259565b60200260200101518888600081811061273857612738615259565b600101612c73565b50612db0565b60005b86811015612cdb57612d43888883818110612d0157612d01615259565b9050602002016020810190612d1691906147ca565b83600081518110612d2957612d29615259565b602002602001015188888581811061273857612738615259565b600101612ce4565b612db087876000818110612d6157612d61615259565b9050602002016020810190612d7691906147ca565b8287878080602002602001604051908101604052809392919081815260200183836020028082843760009201829052509250612805915050565b60005b8151811015612e5c578281108015612df057506000848483818110612dda57612dda615259565b9050602002810190612dec91906152c5565b9050115b15612e5457838382818110612e0757612e07615259565b9050602002810190612e1991906152c5565b60756000858581518110612e2f57612e2f615259565b602002602001015181526020019081526020016000209182612e529291906154b9565b505b600101612db3565b50979650505050505050565b6000805260746020527fccdf39d850e26d5964b24c5391eecfa7a13a375488d6de2101d279419f39a53761086b8284836154b9565b816001600160a01b0316836001600160a01b031603612f105760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b60648201526084016106cf565b6001600160a01b038381166000818152606b6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b612f91826001620e90cb60e41b03196136fa565b156109ee576001600160a01b038216600081815260786020908152604091829020805460ff191685151590811790915591519182527f072a7592283e2c2d1d56d21517ff6013325e0f55483f4828373ff4d98b0a1a36910160405180910390a25050565b606061300082613007565b5092915050565b606080600060776000858152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b8282101561308957600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff168183015282526001909201910161303f565b50505050905080516000036131d65760006130a385611ce6565b90506001600160a01b038116156131d4576130c581634e53ee3d60e11b6136fa565b1561315057604051634e53ee3d60e11b81526001600160a01b03821690639ca7dc7a906130f89030908990600401614a30565b600060405180830381865afa158015613115573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261313d919081019061586f565b8151919550935015613150575050915091565b6001600160a01b038116600090815260766020908152604080832080548251818502810185019093528083529193909284015b828210156131cd57600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff1681830152825260019092019101613183565b5050505091505b505b8051600003613279576000808052607660209081527fafbc767fed27552cbeceb3d11150dacedabc53b0cc52ac5aa6285a747a1819588054604080518285028101850190915281815293919290919084015b8282101561327257600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff1681830152825260019092019101613228565b5050505090505b8051156133af5780516001600160401b0381111561329957613299614a49565b6040519080825280602002602001820160405280156132c2578160200160208202803683370190505b50925080516001600160401b038111156132de576132de614a49565b604051908082528060200260200182016040528015613307578160200160208202803683370190505b50915060005b81518110156133ad5781818151811061332857613328615259565b60200260200101516000015184828151811061334657613346615259565b60200260200101906001600160a01b031690816001600160a01b03168152505081818151811061337857613378615259565b60200260200101516020015161ffff1683828151811061339a5761339a615259565b602090810291909101015260010161330d565b505b50915091565b60405133906001600160a01b038316907fd19cf84cf0fec6bec9ddfa29c63adf83a55707c712f32c8285d6180a7890147990600090a36109ee606e82611e36565b613401606e83611823565b6134415760405162461bcd60e51b815260206004820152601160248201527024b73b30b634b21032bc3a32b739b4b7b760791b60448201526064016106cf565b6001600160a01b03811615806134635750613463816378ea2a9760e11b6136fa565b6134a15760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016106cf565b6001600160a01b038281166000908152607960205260409020548116908216146109ee576001600160a01b0382811660008181526079602052604080822080546001600160a01b031916948616948517905551339392917f6a835c4fcf7e0d398db3762332fdaa1471814ad39f1e2d6d0b3fdabf8efee3e091a45050565b6001600160a01b0384166135455760405162461bcd60e51b81526004016106cf90615688565b33600061355185614027565b9050600061355e85614027565b905061356e8389898585896139fb565b6000868152606a602090815260408083206001600160a01b038c168452909152902054858110156135b15760405162461bcd60e51b81526004016106cf906156cd565b6000878152606a602090815260408083206001600160a01b038d8116855292528083208985039055908a168252812080548892906135f0908490615717565b909155505060408051888152602081018890526001600160a01b03808b16928c82169291881691600080516020615d63833981519152910160405180910390a461363e848a8a8a8a8a614072565b505050505050505050565b60006001600160e01b031982166314d9799760e21b148061367a57506001600160e01b031982166328f10a2160e01b145b806136895750613689826117b3565b806136a457506001600160e01b03198216635d9dd7eb60e11b145b806136bf57506001600160e01b03198216632dde656160e21b145b806136da57506001600160e01b031982166335681b5360e21b145b806106fd57506001600160e01b0319821663152a902d60e11b1492915050565b600061370583614134565b801561184157506118418383614167565b60606000613723836141f0565b60010190506000816001600160401b0381111561374257613742614a49565b6040519080825280601f01601f19166020018201604052801561376c576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461377657509392505050565b8281146137c75760405162461bcd60e51b81526004016106cf9061529e565b6000805b82811015613801578383828181106137e5576137e5615259565b90506020020135826137f79190615717565b91506001016137cb565b5061271081106108bd5760405162461bcd60e51b8152602060048201526017602482015276496e76616c696420746f74616c20726f79616c7469657360481b60448201526064016106cf565b60005b828110156111e75781604051806040016040528088888581811061387657613876615259565b905060200201602081019061388b91906147ca565b6001600160a01b031681526020018686858181106138ab576138ab615259565b61ffff602091820293909301358316909352508354600181810186556000958652948390208451910180549490930151909116600160a01b026001600160b01b03199093166001600160a01b039091161791909117905501613850565b600081815260018301602052604081205480156139f157600061392c60018361573d565b85549091506000906139409060019061573d565b90508181146139a557600086600001828154811061396057613960615259565b906000526020600020015490508087600001848154811061398357613983615259565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806139b6576139b6615934565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506106fd565b60009150506106fd565b6111e7858585856142c6565b613a19846001600160a01b0316612529565b156111e75760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190613a52908990899088908890889060040161594a565b6020604051808303816000875af1925050508015613a8d575060408051601f3d908101601f19168201909252613a8a9181019061599c565b60015b613b3957613a996159b9565b806308c379a003613ad25750613aad6159d5565b80613ab85750613ad4565b8060405162461bcd60e51b81526004016106cf9190614837565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b60648201526084016106cf565b6001600160e01b0319811663bc197c8160e01b146129b15760405162461bcd60e51b81526004016106cf90615a5e565b6000826000018281548110613b8057613b80615259565b9060005260206000200154905092915050565b6001600160a01b038316613bb95760405162461bcd60e51b81526004016106cf90615aa6565b336000613bc584614027565b90506000613bd284614027565b9050613bf2838760008585604051806020016040528060008152506139fb565b6000858152606a602090815260408083206001600160a01b038a16845290915290205484811015613c355760405162461bcd60e51b81526004016106cf90615ae9565b6000868152606a602090815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a9052909290881691600080516020615d63833981519152910160405180910390a46040805160208101909152600090526129b1565b6001600160a01b038316613cc35760405162461bcd60e51b81526004016106cf90615aa6565b8051825114613ce45760405162461bcd60e51b81526004016106cf90615640565b6000339050613d07818560008686604051806020016040528060008152506139fb565b60005b8351811015613dcf576000848281518110613d2757613d27615259565b602002602001015190506000848381518110613d4557613d45615259565b6020908102919091018101516000848152606a835260408082206001600160a01b038c168352909352919091205490915081811015613d965760405162461bcd60e51b81526004016106cf90615ae9565b6000928352606a602090815260408085206001600160a01b038b1686529091529092209103905580613dc781615285565b915050613d0a565b5060006001600160a01b0316846001600160a01b0316826001600160a01b0316600080516020615d438339815191528686604051613e0e92919061572a565b60405180910390a4604080516020810190915260009052610bd3565b600054610100900460ff16613e515760405162461bcd60e51b81526004016106cf906157be565b6068613e5d8382615b2d565b50606961086b8282615b2d565b600054610100900460ff16613e915760405162461bcd60e51b81526004016106cf906157be565b611259336129cf565b336000908152607960205260409020546001600160a01b03161561086b5733600081815260796020526040908190205490516378ea2a9760e11b81526001600160a01b039091169163f1d4552e91613efb9190879087908790600401615be6565b600060405180830381600087803b158015613f1557600080fd5b505af11580156129b1573d6000803e3d6000fd5b613f3584848484614505565b6000838152607b602052604081208054849290613f53908490615717565b909155505050505050565b613f6a848484846145d5565b60005b83518110156108bd57828181518110613f8857613f88615259565b6020026020010151607b6000868481518110613fa657613fa6615259565b602002602001015181526020019081526020016000206000828254613fcb9190615717565b9091555050600101613f6d565b600081815260018301602052604081205461401f575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556106fd565b5060006106fd565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061406157614061615259565b602090810291909101015292915050565b614084846001600160a01b0316612529565b156111e75760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906140bd9089908990889088908890600401615c30565b6020604051808303816000875af19250505080156140f8575060408051601f3d908101601f191682019092526140f59181019061599c565b60015b61410457613a996159b9565b6001600160e01b0319811663f23a6e6160e01b146129b15760405162461bcd60e51b81526004016106cf90615a5e565b6000614147826301ffc9a760e01b614167565b80156106fd5750614160826001600160e01b0319614167565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d915060005190508280156141d9575060208210155b80156141e55750600081115b979650505050505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061422f5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6904ee2d6d415b85acef8160201b8310614259576904ee2d6d415b85acef8160201b830492506020015b662386f26fc10000831061427757662386f26fc10000830492506010015b6305f5e100831061428f576305f5e100830492506008015b61271083106142a357612710830492506004015b606483106142b5576064830492506002015b600a83106106fd5760010192915050565b6001600160a01b03841615610bd3576000607a6000846000815181106142ee576142ee615259565b6020026020010151815260200190815260200160002060009054906101000a90046001600160a01b0316905060005b835181101561438f57816001600160a01b0316607a600086848151811061434657614346615259565b6020908102919091018101518252810191909152604001600020546001600160a01b0316146143875760405162461bcd60e51b81526004016106cf90615750565b60010161431d565b506001600160a01b038116158015906143c057506001600160a01b03811660009081526078602052604090205460ff165b1561445d5760405163e483517760e01b81526001600160a01b0382169063e4835177906143f99033908990899089908990600401615c6a565b6020604051808303816000875af1158015614418573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061443c9190615cb0565b6144585760405162461bcd60e51b81526004016106cf90615ccd565b6108bd565b606d546001600160a01b0316156108bd57606d5460405163e483517760e01b81526001600160a01b039091169063e4835177906144a69033908990899089908990600401615c6a565b6020604051808303816000875af11580156144c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144e99190615cb0565b6108bd5760405162461bcd60e51b81526004016106cf90615ccd565b6001600160a01b03841661452b5760405162461bcd60e51b81526004016106cf90615d01565b33600061453785614027565b9050600061454485614027565b9050614555836000898585896139fb565b6000868152606a602090815260408083206001600160a01b038b16845290915281208054879290614587908490615717565b909155505060408051878152602081018790526001600160a01b03808a169260009291871691600080516020615d63833981519152910160405180910390a46129b183600089898989614072565b6001600160a01b0384166145fb5760405162461bcd60e51b81526004016106cf90615d01565b815183511461461c5760405162461bcd60e51b81526004016106cf90615640565b3361462c816000878787876139fb565b60005b84518110156146c85783818151811061464a5761464a615259565b6020026020010151606a600087848151811061466857614668615259565b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b0316815260200190815260200160002060008282546146b09190615717565b909155508190506146c081615285565b91505061462f565b50846001600160a01b031660006001600160a01b0316826001600160a01b0316600080516020615d43833981519152878760405161470792919061572a565b60405180910390a46108bd81600087878787613a07565b508054600082559060005260206000209081019061077591905b80821115610b815780546001600160b01b0319168155600101614738565b6001600160a01b038116811461077557600080fd5b6000806040838503121561477e57600080fd5b823561478981614756565b946020939093013593505050565b6001600160e01b03198116811461077557600080fd5b6000602082840312156147bf57600080fd5b813561184181614797565b6000602082840312156147dc57600080fd5b813561184181614756565b60005b838110156148025781810151838201526020016147ea565b50506000910152565b600081518084526148238160208601602086016147e7565b601f01601f19169290920160200192915050565b602081526000611841602083018461480b565b60006020828403121561485c57600080fd5b5035919050565b600081518084526020808501945080840160005b8381101561489357815187529582019590820190600101614877565b509495945050505050565b6020815260006118416020830184614863565b60008083601f8401126148c357600080fd5b5081356001600160401b038111156148da57600080fd5b60208301915083602082850101111561098e57600080fd5b60008060006040848603121561490757600080fd5b8335925060208401356001600160401b0381111561492457600080fd5b614930868287016148b1565b9497909650939450505050565b60008083601f84011261494f57600080fd5b5081356001600160401b0381111561496657600080fd5b6020830191508360208260051b850101111561098e57600080fd5b60008060008060006060868803121561499957600080fd5b8535945060208601356001600160401b03808211156149b757600080fd5b6149c389838a0161493d565b909650945060408801359150808211156149dc57600080fd5b506149e98882890161493d565b969995985093965092949392505050565b6001600160a01b0391909116815260200190565b60008060408385031215614a2157600080fd5b50508035926020909101359150565b6001600160a01b03929092168252602082015260400190565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b0381118282101715614a8457614a84614a49565b6040525050565b60006001600160401b03821115614aa457614aa4614a49565b5060051b60200190565b600082601f830112614abf57600080fd5b81356020614acc82614a8b565b604051614ad98282614a5f565b83815260059390931b8501820192828101915086841115614af957600080fd5b8286015b84811015614b145780358352918301918301614afd565b509695505050505050565b60006001600160401b03821115614b3857614b38614a49565b50601f01601f191660200190565b600082601f830112614b5757600080fd5b8135614b6281614b1f565b604051614b6f8282614a5f565b828152856020848701011115614b8457600080fd5b82602086016020830137600092810160200192909252509392505050565b600080600080600060a08688031215614bba57600080fd5b8535614bc581614756565b94506020860135614bd581614756565b935060408601356001600160401b0380821115614bf157600080fd5b614bfd89838a01614aae565b94506060880135915080821115614c1357600080fd5b614c1f89838a01614aae565b93506080880135915080821115614c3557600080fd5b50614c4288828901614b46565b9150509295509295909350565b60008060208385031215614c6257600080fd5b82356001600160401b03811115614c7857600080fd5b614c84858286016148b1565b90969095509350505050565b600080600060408486031215614ca557600080fd5b8335614cb081614756565b925060208401356001600160401b0381111561492457600080fd5b600081518084526020808501945080840160005b838110156148935781516001600160a01b031687529582019590820190600101614cdf565b6020815260006118416020830184614ccb565b60008060008060408587031215614d2d57600080fd5b84356001600160401b0380821115614d4457600080fd5b614d508883890161493d565b90965094506020870135915080821115614d6957600080fd5b50614d768782880161493d565b95989497509550505050565b600080600080600060608688031215614d9a57600080fd5b8535614da581614756565b945060208601356001600160401b03808211156149b757600080fd5b801515811461077557600080fd5b60008060008060608587031215614de557600080fd5b8435614df081614756565b935060208501356001600160401b03811115614e0b57600080fd5b614e17878288016148b1565b9094509250506040850135614e2b81614dc1565b939692955090935050565b60008060408385031215614e4957600080fd5b82356001600160401b0380821115614e6057600080fd5b614e6c86838701614b46565b93506020850135915080821115614e8257600080fd5b50614e8f85828601614b46565b9150509250929050565b60008060408385031215614eac57600080fd5b82356001600160401b0380821115614ec357600080fd5b818501915085601f830112614ed757600080fd5b81356020614ee482614a8b565b604051614ef18282614a5f565b83815260059390931b8501820192828101915089841115614f1157600080fd5b948201945b83861015614f38578535614f2981614756565b82529482019490820190614f16565b96505086013592505080821115614f4e57600080fd5b50614e8f85828601614aae565b60008060008060008060608789031215614f7457600080fd5b86356001600160401b0380821115614f8b57600080fd5b614f978a838b0161493d565b90985096506020890135915080821115614fb057600080fd5b614fbc8a838b0161493d565b90965094506040890135915080821115614fd557600080fd5b50614fe289828a0161493d565b979a9699509497509295939492505050565b60008060006040848603121561500957600080fd5b83356001600160401b0381111561501f57600080fd5b61502b868287016148b1565b909450925050602084013561503f81614dc1565b809150509250925092565b6000806040838503121561505d57600080fd5b823561506881614756565b9150602083013561507881614dc1565b809150509250929050565b60006020828403121561509557600080fd5b813561184181614dc1565b6040815260006150b36040830185614ccb565b82810360208401526150c58185614863565b95945050505050565b600080604083850312156150e157600080fd5b82356150ec81614756565b9150602083013561507881614756565b600080600080600060a0868803121561511457600080fd5b853561511f81614756565b9450602086013561512f81614756565b9350604086013592506060860135915060808601356001600160401b0381111561515857600080fd5b614c4288828901614b46565b60208082526024908201527f41646d696e436f6e74726f6c3a204d757374206265206f776e6572206f7220616040820152633236b4b760e11b606082015260800190565b600181811c908216806151bc57607f821691505b602082108103611bea57634e487b7160e01b600052602260045260246000fd5b602080825260159082015274115e1d195b9cda5bdb88189b1858dadb1a5cdd1959605a1b604082015260600190565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016152975761529761526f565b5060010190565b6020808252600d908201526c125b9d985b1a59081a5b9c1d5d609a1b604082015260600190565b6000808335601e198436030181126152dc57600080fd5b8301803591506001600160401b038211156152f657600080fd5b60200191503681900382131561098e57600080fd5b6020808252600d908201526c24b73b30b634b2103a37b5b2b760991b604082015260600190565b6000815461533f816151a8565b60018281168015615357576001811461536c5761539b565b60ff198416875282151583028701945061539b565b8560005260208060002060005b858110156153925781548a820152908401908201615379565b50505082870194505b5050505092915050565b60006153ba6153b48386615332565b84615332565b949350505050565b6000602082840312156153d457600080fd5b81516001600160401b038111156153ea57600080fd5b8201601f810184136153fb57600080fd5b805161540681614b1f565b6040516154138282614a5f565b82815286602084860101111561542857600080fd5b61133b8360208301602087016147e7565b60006154458285615332565b83516154558183602088016147e7565b01949350505050565b601f82111561086b57600081815260208120601f850160051c810160208610156154855750805b601f850160051c820191505b818110156111e757828155600101615491565b600019600383901b1c191660019190911b1790565b6001600160401b038311156154d0576154d0614a49565b6154e4836154de83546151a8565b8361545e565b6000601f84116001811461551257600085156155005750838201355b61550a86826154a4565b8455506108bd565b600083815260209020601f19861690835b828110156155435786850135825560209485019460019092019101615523565b50868210156155605760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81835260006001600160fb1b0383111561558b57600080fd5b8260051b80836020870137939093016020019392505050565b6040808252810184905260008560608301825b878110156155e75782356155ca81614756565b6001600160a01b03168252602092830192909101906001016155b7565b5083810360208501526155fb818688615572565b98975050505050505050565b80820281158282048414176106fd576106fd61526f565b60008261563b57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b808201808211156106fd576106fd61526f565b6040815260006150b36040830185614863565b818103818111156106fd576106fd61526f565b6020808252601c908201527b4d69736d61746368656420746f6b656e206f726967696e61746f727360201b604082015260600190565b6001600160a01b03861681526060602082018190526000906157ab9083018688615572565b82810360408401526155fb818587615572565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600082601f83011261581a57600080fd5b8151602061582782614a8b565b6040516158348282614a5f565b83815260059390931b850182019282810191508684111561585457600080fd5b8286015b84811015614b145780518352918301918301615858565b6000806040838503121561588257600080fd5b82516001600160401b038082111561589957600080fd5b818501915085601f8301126158ad57600080fd5b815160206158ba82614a8b565b6040516158c78282614a5f565b83815260059390931b85018201928281019150898411156158e757600080fd5b948201945b8386101561590e5785516158ff81614756565b825294820194908201906158ec565b9188015191965090935050508082111561592757600080fd5b50614e8f85828601615809565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b0386811682528516602082015260a06040820181905260009061597690830186614863565b82810360608401526159888186614863565b905082810360808401526155fb818561480b565b6000602082840312156159ae57600080fd5b815161184181614797565b600060033d11156159d25760046000803e5060005160e01c5b90565b600060443d10156159e35790565b6040516003193d81016004833e81513d6001600160401b038160248401118184111715615a1257505050505090565b8285019150815181811115615a2a5750505050505090565b843d8701016020828501011115615a445750505050505090565b615a5360208286010187614a5f565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b60208082526023908201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526024908201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604082015263616e636560e01b606082015260800190565b81516001600160401b03811115615b4657615b46614a49565b615b5a81615b5484546151a8565b8461545e565b602080601f831160018114615b895760008415615b775750858301515b615b8185826154a4565b8655506111e7565b600085815260208120601f198616915b82811015615bb857888601518255948401946001909101908401615b99565b5085821015615bd65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b0385168152608060208201819052600090615c0a90830186614ccb565b8281036040840152615c1c8186614863565b905082810360608401526141e58185614863565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906141e59083018461480b565b6001600160a01b03868116825285811660208301528416604082015260a060608201819052600090615c9e90830185614863565b82810360808401526155fb8185614863565b600060208284031215615cc257600080fd5b815161184181614dc1565b6020808252601a9082015279457874656e73696f6e20617070726f76616c206661696c75726560301b604082015260600190565b60208082526021908201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736040820152607360f81b60608201526080019056fe4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fbc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62a2646970667358221220ddc28c80bfaef944d29c9b26274da777bca8c243e01c3d4c78b4dcb61dcdc10064736f6c63430008130033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061026b5760003560e01c8063695c96e61161014d578063695c96e6146104a95780636d73e669146104bc578063715018a6146104cf57806382dcc0c8146104d757806383b7db63146104ea5780638c6e8472146104f25780638da5cb5b1461050557806395d89b411461050d57806399e0dd7c14610515578063a22cb46514610528578063aafb2d441461053b578063ac0c8cfa1461054e578063b0fe87c914610561578063b9c4d9fb14610574578063bb3bafd614610587578063bd85b039146105a8578063ce8aee9d146105c8578063d5a06d4c14610587578063e6c884dc146105db578063e92a89f6146105ee578063e985e9c514610601578063f0cdc49914610614578063f242432a14610627578063f2fde38b1461063a578063feeb5a9a1461064d578063ffa1ad741461066057600080fd5b8062fdd58e1461027057806301ffc9a71461029657806302e7afb7146102b957806306fdde03146102ce5780630e89341c146102e35780630ebd4c7f146102f6578063162094c41461031657806320e4afe21461032957806322f374d01461033c578063239be3171461035657806324d7806c146103695780632a55205a1461037c5780632d3456701461039d5780632eb2c2d6146103b057806330176e13146103c35780633071a0f9146103d657806331ae450b146103e9578063332dd1ae146103fe5780633db0f8ab146104115780633e6134b8146104245780633f0f37f6146104375780634cd88b761461044a5780634e1273f41461045d578063596798ad1461047057806361e5bc6b1461048357806366d1e9d014610496575b600080fd5b61028361027e36600461476b565b610668565b6040519081526020015b60405180910390f35b6102a96102a43660046147ad565b610703565b604051901515815260200161028d565b6102cc6102c73660046147ca565b61072c565b005b6102d6610778565b60405161028d9190614837565b6102d66102f136600461484a565b61080a565b61030961030436600461484a565b610815565b60405161028d919061489e565b6102cc6103243660046148f2565b610820565b6102cc610337366004614981565b610870565b606d546001600160a01b03165b60405161028d91906149fa565b61034961036436600461484a565b6108c4565b6102a96103773660046147ca565b61094d565b61038f61038a366004614a0e565b61097c565b60405161028d929190614a30565b6102cc6103ab3660046147ca565b610995565b6102cc6103be366004614ba2565b6109f2565b6102cc6103d1366004614c4f565b610a37565b6102cc6103e4366004614c90565b610a81565b6103f1610ad7565b60405161028d9190614d04565b6102cc61040c366004614d17565b610b85565b6102cc61041f366004614d82565b610bd9565b6102cc610432366004614c4f565b610d38565b6102cc610445366004614dcf565b610d4c565b6102cc610458366004614e36565b610da1565b61030961046b366004614e99565b610ec4565b6102cc61047e3660046147ca565b610fed565b6102cc610491366004614d17565b611036565b6102cc6104a4366004614c4f565b6110b5565b6102cc6104b7366004614f5b565b6110c7565b6102cc6104ca3660046147ca565b6111ef565b6102cc611247565b6102cc6104e5366004614ff4565b61125b565b6103f161126e565b610309610500366004614f5b565b61130e565b610349611345565b6102d6611354565b6102cc610523366004614c4f565b611363565b6102cc61053636600461504a565b6113ad565b6102cc610549366004614d17565b6113b8565b6102cc61055c366004615083565b61146f565b6102cc61056f366004614d82565b611481565b6103f161058236600461484a565b6114ce565b61059a61059536600461484a565b6114d9565b60405161028d9291906150a0565b6102836105b636600461484a565b6000908152607b602052604090205490565b6102cc6105d63660046147ca565b6114ee565b6102cc6105e9366004614f5b565b611537565b6102cc6105fc3660046148f2565b6115ee565b6102a961060f3660046150ce565b611601565b6102cc6106223660046150ce565b61162f565b6102cc6106353660046150fc565b611679565b6102cc6106483660046147ca565b6116be565b61030961065b366004614f5b565b611734565b610283600381565b60006001600160a01b0383166106d85760405162461bcd60e51b815260206004820152602a60248201527f455243313135353a2061646472657373207a65726f206973206e6f742061207660448201526930b634b21037bbb732b960b11b60648201526084015b60405180910390fd5b506000818152606a602090815260408083206001600160a01b03861684529091529020545b92915050565b600061070e8261178e565b8061071d575061071d826117b3565b806106fd57506106fd826117ee565b33610735611345565b6001600160a01b031614806107505750610750606633611823565b61076c5760405162461bcd60e51b81526004016106cf90615164565b61077581611848565b50565b606060688054610787906151a8565b80601f01602080910402602001604051908101604052809291908181526020018280546107b3906151a8565b80156108005780601f106107d557610100808354040283529160200191610800565b820191906000526020600020905b8154815290600101906020018083116107e357829003601f168201915b5050505050905090565b60606106fd82611954565b60606106fd82611bf0565b33610829611345565b6001600160a01b031614806108445750610844606633611823565b6108605760405162461bcd60e51b81526004016106cf90615164565b61086b838383611bfb565b505050565b33610879611345565b6001600160a01b031614806108945750610894606633611823565b6108b05760405162461bcd60e51b81526004016106cf90615164565b6108bd8585858585611c5f565b5050505050565b60006108cf82611ce6565b90506001600160a01b0381166109205760405162461bcd60e51b815260206004820152601660248201527527379032bc3a32b739b4b7b7103337b9103a37b5b2b760511b60448201526064016106cf565b61092b607082611823565b156109485760405162461bcd60e51b81526004016106cf906151dc565b919050565b6000816001600160a01b0316610961611345565b6001600160a01b031614806106fd57506106fd606683611823565b6000806109898484611d01565b915091505b9250929050565b61099d611dd7565b6109a8606682611823565b156107755760405133906001600160a01b038316907f7c0c3c84c67c85fcac635147348bfe374c24a1a93d0366d1cfe9d8853cbf89d590600090a36109ee606682611e36565b5050565b6001600160a01b038516331480610a0e5750610a0e8533611601565b610a2a5760405162461bcd60e51b81526004016106cf9061520b565b6108bd8585858585611e4b565b33610a40611345565b6001600160a01b03161480610a5b5750610a5b606633611823565b610a775760405162461bcd60e51b81526004016106cf90615164565b6109ee8282611fde565b33610a8a611345565b6001600160a01b03161480610aa55750610aa5606633611823565b610ac15760405162461bcd60e51b81526004016106cf90615164565b610aca83612013565b61086b838383600061203b565b6060610ae3606661212c565b6001600160401b03811115610afa57610afa614a49565b604051908082528060200260200182016040528015610b23578160200160208202803683370190505b50905060005b610b33606661212c565b811015610b8157610b45606682612136565b828281518110610b5757610b57615259565b6001600160a01b039092166020928302919091019091015280610b7981615285565b915050610b29565b5090565b33610b8e611345565b6001600160a01b03161480610ba95750610ba9606633611823565b610bc55760405162461bcd60e51b81526004016106cf90615164565b610bd3600085858585612142565b50505050565b610be161222f565b6001600160a01b038516331480610bfd5750610bfd8533611601565b610c495760405162461bcd60e51b815260206004820152601f60248201527f43616c6c6572206973206e6f74206f776e6572206f7220617070726f7665640060448201526064016106cf565b828114610c685760405162461bcd60e51b81526004016106cf9061529e565b6001839003610cb357610cae8585856000818110610c8857610c88615259565b9050602002013584846000818110610ca257610ca2615259565b90506020020135612288565b610d21565b610d2185858580806020026020016040519081016040528093929190818152602001838360200280828437600092019190915250506040805160208089028281018201909352888252909350889250879182918501908490808284376000920191909152506122bb92505050565b610d2e8585858585612334565b6108bd6001606555565b610d40612496565b6109ee828260006124ec565b33610d55611345565b6001600160a01b03161480610d705750610d70606633611823565b610d8c5760405162461bcd60e51b81526004016106cf90615164565b610d9584612013565b610bd38484848461203b565b600054610100900460ff1615808015610dc15750600054600160ff909116105b80610de25750610dd030612529565b158015610de2575060005460ff166001145b610e455760405162461bcd60e51b815260206004820152602e60248201527f496e697469616c697a61626c653a20636f6e747261637420697320616c72656160448201526d191e481a5b9a5d1a585b1a5e995960921b60648201526084016106cf565b6000805460ff191660011790558015610e68576000805461ff0019166101001790555b610e728383612538565b610e7a612569565b801561086b576000805461ff0019169055604051600181527f7f26b83ff96e1f2b6a682f133852f6798a09c465da95921460cefb38474024989060200160405180910390a1505050565b60608151835114610f295760405162461bcd60e51b815260206004820152602960248201527f455243313135353a206163636f756e747320616e6420696473206c656e677468604482015268040dad2e6dac2e8c6d60bb1b60648201526084016106cf565b600083516001600160401b03811115610f4457610f44614a49565b604051908082528060200260200182016040528015610f6d578160200160208202803683370190505b50905060005b8451811015610fe557610fb8858281518110610f9157610f91615259565b6020026020010151858381518110610fab57610fab615259565b6020026020010151610668565b828281518110610fca57610fca615259565b6020908102919091010152610fde81615285565b9050610f73565b509392505050565b33610ff6611345565b6001600160a01b031614806110115750611011606633611823565b61102d5760405162461bcd60e51b81526004016106cf90615164565b61077581612598565b61103e612496565b82811461105d5760405162461bcd60e51b81526004016106cf9061529e565b60005b838110156108bd576110ad85858381811061107d5761107d615259565b9050602002013584848481811061109657611096615259565b90506020028101906110a891906152c5565b6125ee565b600101611060565b6110bd612496565b6109ee82826125f8565b6110cf61222f565b336110d8611345565b6001600160a01b031614806110f357506110f3606633611823565b61110f5760405162461bcd60e51b81526004016106cf90615164565b60005b838110156111cc57600085858381811061112e5761112e615259565b9050602002013590506000811180156111495750606c548111155b6111655760405162461bcd60e51b81526004016106cf9061530b565b600061117082611ce6565b6001600160a01b0316146111c35760405162461bcd60e51b815260206004820152601a6024820152792a37b5b2b71031b932b0ba32b210313c9032bc3a32b739b4b7b760311b60448201526064016106cf565b50600101611112565b506111dd6000878787878787612612565b6111e76001606555565b505050505050565b6111f7611dd7565b611202606682611823565b6107755760405133906001600160a01b038316907f7e1a1a08d52e4ba0e21554733d66165fd5151f99460116223d9e3a608eec5cb190600090a36109ee6066826129ba565b61124f611dd7565b61125960006129cf565b565b611263612496565b61086b8383836124ec565b606061127a606e61212c565b6001600160401b0381111561129157611291614a49565b6040519080825280602002602001820160405280156112ba578160200160208202803683370190505b50905060005b6112ca606e61212c565b811015610b81576112dc606e82612136565b8282815181106112ee576112ee615259565b6001600160a01b03909216602092830291909101909101526001016112c0565b606061131861222f565b611320612496565b61132f33888888888888612a21565b905061133b6001606555565b9695505050505050565b6033546001600160a01b031690565b606060698054610787906151a8565b3361136c611345565b6001600160a01b031614806113875750611387606633611823565b6113a35760405162461bcd60e51b81526004016106cf90615164565b6109ee8282612e68565b6109ee338383612e9d565b336113c1611345565b6001600160a01b031614806113dc57506113dc606633611823565b6113f85760405162461bcd60e51b81526004016106cf90615164565b8281146114175760405162461bcd60e51b81526004016106cf9061529e565b60005b838110156108bd5761146785858381811061143757611437615259565b9050602002013584848481811061145057611450615259565b905060200281019061146291906152c5565b611bfb565b60010161141a565b611477612496565b6107753382612f7d565b3361148a611345565b6001600160a01b031614806114a557506114a5606633611823565b6114c15760405162461bcd60e51b81526004016106cf90615164565b6108bd8585858585612142565b60606106fd82612ff5565b6060806114e583613007565b91509150915091565b336114f7611345565b6001600160a01b031614806115125750611512606633611823565b61152e5760405162461bcd60e51b81526004016106cf90615164565b610775816133b5565b61153f61222f565b611547612496565b60005b838110156115de573361157486868481811061156857611568615259565b90506020020135611ce6565b6001600160a01b0316146115d65760405162461bcd60e51b815260206004820152602360248201527f546f6b656e206e6f742063726561746564206279207468697320657874656e7360448201526234b7b760e91b60648201526084016106cf565b60010161154a565b506111dd33878787878787612612565b6115f6612496565b61086b8383836125ee565b6001600160a01b039182166000908152606b6020908152604080832093909416825291909152205460ff1690565b33611638611345565b6001600160a01b031614806116535750611653606633611823565b61166f5760405162461bcd60e51b81526004016106cf90615164565b6109ee82826133f6565b6001600160a01b03851633148061169557506116958533611601565b6116b15760405162461bcd60e51b81526004016106cf9061520b565b6108bd858585858561351f565b6116c6611dd7565b6001600160a01b03811661172b5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016106cf565b610775816129cf565b606061173e61222f565b33611747611345565b6001600160a01b031614806117625750611762606633611823565b61177e5760405162461bcd60e51b81526004016106cf90615164565b61132f6000888888888888612a21565b60006001600160e01b031982166301f4921160e61b14806106fd57506106fd82613649565b60006001600160e01b03198216636cdb3d1360e11b148061071d57506001600160e01b031982166303a24d0760e21b14806106fd57506106fd825b60006001600160e01b03198216632a9f3abf60e11b14806106fd57506301ffc9a760e01b6001600160e01b03198316146106fd565b6001600160a01b038116600090815260018301602052604081205415155b9392505050565b6001600160a01b0381161580159061186957506001600160a01b0381163014155b6118b15760405162461bcd60e51b815260206004820152601960248201527821b0b73737ba10313630b1b5b634b9ba103cb7bab939b2b63360391b60448201526064016106cf565b6118bc606e82611823565b156119045760405133906001600160a01b038316907fd19cf84cf0fec6bec9ddfa29c63adf83a55707c712f32c8285d6180a7890147990600090a3611902606e82611e36565b505b61190f607082611823565b6107755760405133906001600160a01b038316907f05ac7bc5a606cd92a63365f9fda244499b9add0526b22d99937b6bd88181059c90600090a36109ee6070826129ba565b60606000821180156119685750606c548211155b6119845760405162461bcd60e51b81526004016106cf9061530b565b600061198f83611ce6565b905061199c607082611823565b156119b95760405162461bcd60e51b81526004016106cf906151dc565b600083815260756020526040902080546119d2906151a8565b159050611aec576001600160a01b038116600090815260746020526040902080546119fc906151a8565b159050611a4d576001600160a01b038116600090815260746020908152604080832086845260758352928190209051611a369392016153a5565b604051602081830303815290604052915050919050565b60008381526075602052604090208054611a66906151a8565b80601f0160208091040260200160405190810160405280929190818152602001828054611a92906151a8565b8015611adf5780601f10611ab457610100808354040283529160200191611adf565b820191906000526020600020905b815481529060010190602001808311611ac257829003601f168201915b5050505050915050919050565b611afd8163e9dc637560e01b6136fa565b15611b755760405163e9dc637560e01b81526001600160a01b0382169063e9dc637590611b309030908790600401614a30565b600060405180830381865afa158015611b4d573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261184191908101906153c2565b6001600160a01b03811660009081526073602052604090205460ff16611bc7576001600160a01b0381166000908152607260205260409020611bb684613716565b604051602001611a36929190615439565b6001600160a01b03811660009081526072602052604090208054611a66906151a8565b50919050565b606061184182613007565b600083118015611c0d5750606c548311155b8015611c2a57506000611c1f84611ce6565b6001600160a01b0316145b611c465760405162461bcd60e51b81526004016106cf9061530b565b6000838152607560205260409020610bd38284836154b9565b611c6b848484846137a8565b6000858152607760205260408120611c829161471e565b611ca184848484607760008b815260200190815260200160002061384d565b847fabb46fe0761d77584bde75697647804ffd8113abd4d8d06bc664150395eccdee85858585604051611cd794939291906155a4565b60405180910390a25050505050565b6000908152607a60205260409020546001600160a01b031690565b600080600080611d1086613007565b91509150600182511115611d655760405162461bcd60e51b815260206004820152601c60248201527b26b7b932903a3430b71018903937bcb0b63a3c903932b1b2b4bb32b960211b60448201526064016106cf565b8151600003611d7c5730600093509350505061098e565b81600081518110611d8f57611d8f615259565b60200260200101516127108683600081518110611dae57611dae615259565b6020026020010151611dc09190615607565b611dca919061561e565b9350935050509250929050565b33611de0611345565b6001600160a01b0316146112595760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016106cf565b6000611841836001600160a01b038416613908565b8151835114611e6c5760405162461bcd60e51b81526004016106cf90615640565b6001600160a01b038416611e925760405162461bcd60e51b81526004016106cf90615688565b33611ea18187878787876139fb565b60005b8451811015611f8a576000858281518110611ec157611ec1615259565b602002602001015190506000858381518110611edf57611edf615259565b6020908102919091018101516000848152606a835260408082206001600160a01b038e168352909352919091205490915081811015611f305760405162461bcd60e51b81526004016106cf906156cd565b6000838152606a602090815260408083206001600160a01b038e8116855292528083208585039055908b16825281208054849290611f6f908490615717565b9250508190555050505080611f8390615285565b9050611ea4565b50846001600160a01b0316866001600160a01b0316826001600160a01b0316600080516020615d438339815191528787604051611fc892919061572a565b60405180910390a46111e7818787878787613a07565b6000805260726020527fb5ad54240dc61c51d3a3e8d3f925722e010966ae263d67344c5fb60bddebddae61086b8284836154b9565b61201e607082611823565b156107755760405162461bcd60e51b81526004016106cf906151dc565b6001600160a01b03841630148015906120615750612061846001600160a01b0316612529565b6120975760405162461bcd60e51b8152602060048201526007602482015266125b9d985b1a5960ca1b60448201526064016106cf565b60405133906001600160a01b038616907fd8cb8ba4086944eabf43c5535b7712015e4d4c714b24bf812c040ea5b7a3e42a90600090a36001600160a01b03841660009081526072602052604090206120f08385836154b9565b506001600160a01b0384166000908152607360205260409020805460ff1916821515179055612120606e856129ba565b50610bd3846001612f7d565b60006106fd825490565b60006118418383613b69565b61214e848484846137a8565b6001600160a01b038516600090815260766020526040812061216f9161471e565b6121a084848484607660008b6001600160a01b03166001600160a01b0316815260200190815260200160002061384d565b6001600160a01b0385166121f0577f2b6849d5976d799a5b0ca4dfd6b40a3d7afe9ea72c091fa01a958594f9a2659b848484846040516121e394939291906155a4565b60405180910390a16108bd565b846001600160a01b03167f535a93d2cb000582c0ebeaa9be4890ec6a287f98eb2df00c54c300612fd78d8f85858585604051611cd794939291906155a4565b6002606554036122815760405162461bcd60e51b815260206004820152601f60248201527f5265656e7472616e637947756172643a207265656e7472616e742063616c6c0060448201526064016106cf565b6002606555565b612293838383613b93565b6000828152607b6020526040812080548392906122b190849061573d565b9091555050505050565b6122c6838383613c9d565b60005b8251811015610bd3578181815181106122e4576122e4615259565b6020026020010151607b600085848151811061230257612302615259565b602002602001015181526020019081526020016000206000828254612327919061573d565b90915550506001016122c9565b826123515760405162461bcd60e51b81526004016106cf9061529e565b6000607a60008686600081811061236a5761236a615259565b602090810292909201358352508101919091526040016000908120546001600160a01b031691505b8481101561240257816001600160a01b0316607a60008888858181106123ba576123ba615259565b60209081029290920135835250810191909152604001600020546001600160a01b0316146123fa5760405162461bcd60e51b81526004016106cf90615750565b600101612392565b506001600160a01b038116156111e757612423816303dc6f6560e51b6136fa565b156111e7576040516303dc6f6560e51b81526001600160a01b03821690637b8deca09061245c9089908990899089908990600401615786565b600060405180830381600087803b15801561247657600080fd5b505af115801561248a573d6000803e3d6000fd5b50505050505050505050565b6124a1606e33611823565b6112595760405162461bcd60e51b815260206004820152601c60248201527b26bab9ba103132903932b3b4b9ba32b932b21032bc3a32b739b4b7b760211b60448201526064016106cf565b3360009081526072602052604090206125068385836154b9565b50336000908152607360205260409020805460ff19169115159190911790555050565b6001600160a01b03163b151590565b600054610100900460ff1661255f5760405162461bcd60e51b81526004016106cf906157be565b6109ee8282613e2a565b600054610100900460ff166125905760405162461bcd60e51b81526004016106cf906157be565b611259613e6a565b606d80546001600160a01b0319166001600160a01b0383161790556040517f959c0e47a2fe3cf01e237ba4892e2cc3194d77cbfb33e434e40873225d6b595f906125e39083906149fa565b60405180910390a150565b33611c1f84611ce6565b33600090815260746020526040902061086b8284836154b9565b6001600160a01b038716156126bf576126bf86868080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808a0282810182019093528982529093508992508891829185019084908082843760009201919091525050604080516020808902828101820190935288825290935088925087918291850190849080828437600092019190915250613e9a92505050565b6001851480156126cf5750600183145b80156126db5750600181145b1561275c57612757868660008181106126f6576126f6615259565b905060200201602081019061270b91906147ca565b8585600081811061271e5761271e615259565b905060200201358484600081811061273857612738615259565b6040805160008152602080820190925291029290920135919050613f29565b6129b1565b60018514801561276b57508281145b15612835576127578686600081811061278657612786615259565b905060200201602081019061279b91906147ca565b8585808060200260200160405190810160405280939291908181526020018383602002808284376000920191909152505060408051602080890282810182019093528882529093508892508791829185019084908082843760009201829052509250612805915050565b6040519080825280601f01601f19166020018201604052801561282f576020820181803683370190505b50613f5e565b6001831480156128455750600181145b156128ba5760005b858110156128b4576128ac87878381811061286a5761286a615259565b905060200201602081019061287f91906147ca565b8686600081811061289257612892615259565b905060200201358585600081811061273857612738615259565b60010161284d565b506129b1565b6001831480156128c957508481145b156129375760005b858110156128b45761292f8787838181106128ee576128ee615259565b905060200201602081019061290391906147ca565b8686600081811061291657612916615259565b9050602002013585858581811061273857612738615259565b6001016128d1565b848314801561294557508481145b156129995760005b858110156128b45761299187878381811061296a5761296a615259565b905060200201602081019061297f91906147ca565b86868481811061291657612916615259565b60010161294d565b60405162461bcd60e51b81526004016106cf9061529e565b50505050505050565b6000611841836001600160a01b038416613fd8565b603380546001600160a01b038381166001600160a01b0319831681179093556040519116919082907f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e090600090a35050565b60606001861115612a8757604080516001808252818301909252906020808301908036833701905050905060018211801590612a6657506001841480612a6657508584145b612a825760405162461bcd60e51b81526004016106cf9061529e565b612af3565b836001600160401b03811115612a9f57612a9f614a49565b604051908082528060200260200182016040528015612ac8578160200160208202803683370190505b509050811580612ad757508382145b612af35760405162461bcd60e51b81526004016106cf9061529e565b60005b8151811015612b6a57606c60008154612b0e90615285565b90915550606c548251839083908110612b2957612b29615259565b602090810291909101810191909152606c546000908152607a9091526040902080546001600160a01b0319166001600160a01b038b16179055600101612af6565b506001600160a01b03881615612bea57612bea87878080602002602001604051908101604052809392919081815260200183836020028082843760009201919091525050604080516020808b0282810182019093528a82528794509092508a918a91829190850190849080828437600092019190915250613e9a92505050565b600186148015612bfb575080516001145b15612c5e57612c5987876000818110612c1657612c16615259565b9050602002016020810190612c2b91906147ca565b82600081518110612c3e57612c3e615259565b60200260200101518787600081811061273857612738615259565b612db0565b6001861115612d4b576001849003612ce15760005b86811015612cdb57612cd3888883818110612c9057612c90615259565b9050602002016020810190612ca591906147ca565b83600081518110612cb857612cb8615259565b60200260200101518888600081811061273857612738615259565b600101612c73565b50612db0565b60005b86811015612cdb57612d43888883818110612d0157612d01615259565b9050602002016020810190612d1691906147ca565b83600081518110612d2957612d29615259565b602002602001015188888581811061273857612738615259565b600101612ce4565b612db087876000818110612d6157612d61615259565b9050602002016020810190612d7691906147ca565b8287878080602002602001604051908101604052809392919081815260200183836020028082843760009201829052509250612805915050565b60005b8151811015612e5c578281108015612df057506000848483818110612dda57612dda615259565b9050602002810190612dec91906152c5565b9050115b15612e5457838382818110612e0757612e07615259565b9050602002810190612e1991906152c5565b60756000858581518110612e2f57612e2f615259565b602002602001015181526020019081526020016000209182612e529291906154b9565b505b600101612db3565b50979650505050505050565b6000805260746020527fccdf39d850e26d5964b24c5391eecfa7a13a375488d6de2101d279419f39a53761086b8284836154b9565b816001600160a01b0316836001600160a01b031603612f105760405162461bcd60e51b815260206004820152602960248201527f455243313135353a2073657474696e6720617070726f76616c20737461747573604482015268103337b91039b2b63360b91b60648201526084016106cf565b6001600160a01b038381166000818152606b6020908152604080832094871680845294825291829020805460ff191686151590811790915591519182527f17307eab39ab6107e8899845ad3d59bd9653f200f220920489ca2b5937696c31910160405180910390a3505050565b612f91826001620e90cb60e41b03196136fa565b156109ee576001600160a01b038216600081815260786020908152604091829020805460ff191685151590811790915591519182527f072a7592283e2c2d1d56d21517ff6013325e0f55483f4828373ff4d98b0a1a36910160405180910390a25050565b606061300082613007565b5092915050565b606080600060776000858152602001908152602001600020805480602002602001604051908101604052809291908181526020016000905b8282101561308957600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff168183015282526001909201910161303f565b50505050905080516000036131d65760006130a385611ce6565b90506001600160a01b038116156131d4576130c581634e53ee3d60e11b6136fa565b1561315057604051634e53ee3d60e11b81526001600160a01b03821690639ca7dc7a906130f89030908990600401614a30565b600060405180830381865afa158015613115573d6000803e3d6000fd5b505050506040513d6000823e601f3d908101601f1916820160405261313d919081019061586f565b8151919550935015613150575050915091565b6001600160a01b038116600090815260766020908152604080832080548251818502810185019093528083529193909284015b828210156131cd57600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff1681830152825260019092019101613183565b5050505091505b505b8051600003613279576000808052607660209081527fafbc767fed27552cbeceb3d11150dacedabc53b0cc52ac5aa6285a747a1819588054604080518285028101850190915281815293919290919084015b8282101561327257600084815260209081902060408051808201909152908401546001600160a01b0381168252600160a01b900461ffff1681830152825260019092019101613228565b5050505090505b8051156133af5780516001600160401b0381111561329957613299614a49565b6040519080825280602002602001820160405280156132c2578160200160208202803683370190505b50925080516001600160401b038111156132de576132de614a49565b604051908082528060200260200182016040528015613307578160200160208202803683370190505b50915060005b81518110156133ad5781818151811061332857613328615259565b60200260200101516000015184828151811061334657613346615259565b60200260200101906001600160a01b031690816001600160a01b03168152505081818151811061337857613378615259565b60200260200101516020015161ffff1683828151811061339a5761339a615259565b602090810291909101015260010161330d565b505b50915091565b60405133906001600160a01b038316907fd19cf84cf0fec6bec9ddfa29c63adf83a55707c712f32c8285d6180a7890147990600090a36109ee606e82611e36565b613401606e83611823565b6134415760405162461bcd60e51b815260206004820152601160248201527024b73b30b634b21032bc3a32b739b4b7b760791b60448201526064016106cf565b6001600160a01b03811615806134635750613463816378ea2a9760e11b6136fa565b6134a15760405162461bcd60e51b815260206004820152600f60248201526e496e76616c6964206164647265737360881b60448201526064016106cf565b6001600160a01b038281166000908152607960205260409020548116908216146109ee576001600160a01b0382811660008181526079602052604080822080546001600160a01b031916948616948517905551339392917f6a835c4fcf7e0d398db3762332fdaa1471814ad39f1e2d6d0b3fdabf8efee3e091a45050565b6001600160a01b0384166135455760405162461bcd60e51b81526004016106cf90615688565b33600061355185614027565b9050600061355e85614027565b905061356e8389898585896139fb565b6000868152606a602090815260408083206001600160a01b038c168452909152902054858110156135b15760405162461bcd60e51b81526004016106cf906156cd565b6000878152606a602090815260408083206001600160a01b038d8116855292528083208985039055908a168252812080548892906135f0908490615717565b909155505060408051888152602081018890526001600160a01b03808b16928c82169291881691600080516020615d63833981519152910160405180910390a461363e848a8a8a8a8a614072565b505050505050505050565b60006001600160e01b031982166314d9799760e21b148061367a57506001600160e01b031982166328f10a2160e01b145b806136895750613689826117b3565b806136a457506001600160e01b03198216635d9dd7eb60e11b145b806136bf57506001600160e01b03198216632dde656160e21b145b806136da57506001600160e01b031982166335681b5360e21b145b806106fd57506001600160e01b0319821663152a902d60e11b1492915050565b600061370583614134565b801561184157506118418383614167565b60606000613723836141f0565b60010190506000816001600160401b0381111561374257613742614a49565b6040519080825280601f01601f19166020018201604052801561376c576020820181803683370190505b5090508181016020015b600019016f181899199a1a9b1b9c1cb0b131b232b360811b600a86061a8153600a850494508461377657509392505050565b8281146137c75760405162461bcd60e51b81526004016106cf9061529e565b6000805b82811015613801578383828181106137e5576137e5615259565b90506020020135826137f79190615717565b91506001016137cb565b5061271081106108bd5760405162461bcd60e51b8152602060048201526017602482015276496e76616c696420746f74616c20726f79616c7469657360481b60448201526064016106cf565b60005b828110156111e75781604051806040016040528088888581811061387657613876615259565b905060200201602081019061388b91906147ca565b6001600160a01b031681526020018686858181106138ab576138ab615259565b61ffff602091820293909301358316909352508354600181810186556000958652948390208451910180549490930151909116600160a01b026001600160b01b03199093166001600160a01b039091161791909117905501613850565b600081815260018301602052604081205480156139f157600061392c60018361573d565b85549091506000906139409060019061573d565b90508181146139a557600086600001828154811061396057613960615259565b906000526020600020015490508087600001848154811061398357613983615259565b6000918252602080832090910192909255918252600188019052604090208390555b85548690806139b6576139b6615934565b6001900381819060005260206000200160009055905585600101600086815260200190815260200160002060009055600193505050506106fd565b60009150506106fd565b6111e7858585856142c6565b613a19846001600160a01b0316612529565b156111e75760405163bc197c8160e01b81526001600160a01b0385169063bc197c8190613a52908990899088908890889060040161594a565b6020604051808303816000875af1925050508015613a8d575060408051601f3d908101601f19168201909252613a8a9181019061599c565b60015b613b3957613a996159b9565b806308c379a003613ad25750613aad6159d5565b80613ab85750613ad4565b8060405162461bcd60e51b81526004016106cf9190614837565b505b60405162461bcd60e51b815260206004820152603460248201527f455243313135353a207472616e7366657220746f206e6f6e2d455243313135356044820152732932b1b2b4bb32b91034b6b83632b6b2b73a32b960611b60648201526084016106cf565b6001600160e01b0319811663bc197c8160e01b146129b15760405162461bcd60e51b81526004016106cf90615a5e565b6000826000018281548110613b8057613b80615259565b9060005260206000200154905092915050565b6001600160a01b038316613bb95760405162461bcd60e51b81526004016106cf90615aa6565b336000613bc584614027565b90506000613bd284614027565b9050613bf2838760008585604051806020016040528060008152506139fb565b6000858152606a602090815260408083206001600160a01b038a16845290915290205484811015613c355760405162461bcd60e51b81526004016106cf90615ae9565b6000868152606a602090815260408083206001600160a01b038b81168086529184528285208a8703905582518b81529384018a9052909290881691600080516020615d63833981519152910160405180910390a46040805160208101909152600090526129b1565b6001600160a01b038316613cc35760405162461bcd60e51b81526004016106cf90615aa6565b8051825114613ce45760405162461bcd60e51b81526004016106cf90615640565b6000339050613d07818560008686604051806020016040528060008152506139fb565b60005b8351811015613dcf576000848281518110613d2757613d27615259565b602002602001015190506000848381518110613d4557613d45615259565b6020908102919091018101516000848152606a835260408082206001600160a01b038c168352909352919091205490915081811015613d965760405162461bcd60e51b81526004016106cf90615ae9565b6000928352606a602090815260408085206001600160a01b038b1686529091529092209103905580613dc781615285565b915050613d0a565b5060006001600160a01b0316846001600160a01b0316826001600160a01b0316600080516020615d438339815191528686604051613e0e92919061572a565b60405180910390a4604080516020810190915260009052610bd3565b600054610100900460ff16613e515760405162461bcd60e51b81526004016106cf906157be565b6068613e5d8382615b2d565b50606961086b8282615b2d565b600054610100900460ff16613e915760405162461bcd60e51b81526004016106cf906157be565b611259336129cf565b336000908152607960205260409020546001600160a01b03161561086b5733600081815260796020526040908190205490516378ea2a9760e11b81526001600160a01b039091169163f1d4552e91613efb9190879087908790600401615be6565b600060405180830381600087803b158015613f1557600080fd5b505af11580156129b1573d6000803e3d6000fd5b613f3584848484614505565b6000838152607b602052604081208054849290613f53908490615717565b909155505050505050565b613f6a848484846145d5565b60005b83518110156108bd57828181518110613f8857613f88615259565b6020026020010151607b6000868481518110613fa657613fa6615259565b602002602001015181526020019081526020016000206000828254613fcb9190615717565b9091555050600101613f6d565b600081815260018301602052604081205461401f575081546001818101845560008481526020808220909301849055845484825282860190935260409020919091556106fd565b5060006106fd565b6040805160018082528183019092526060916000919060208083019080368337019050509050828160008151811061406157614061615259565b602090810291909101015292915050565b614084846001600160a01b0316612529565b156111e75760405163f23a6e6160e01b81526001600160a01b0385169063f23a6e61906140bd9089908990889088908890600401615c30565b6020604051808303816000875af19250505080156140f8575060408051601f3d908101601f191682019092526140f59181019061599c565b60015b61410457613a996159b9565b6001600160e01b0319811663f23a6e6160e01b146129b15760405162461bcd60e51b81526004016106cf90615a5e565b6000614147826301ffc9a760e01b614167565b80156106fd5750614160826001600160e01b0319614167565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d915060005190508280156141d9575060208210155b80156141e55750600081115b979650505050505050565b60008072184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b831061422f5772184f03e93ff9f4daa797ed6e38ed64bf6a1f0160401b830492506040015b6904ee2d6d415b85acef8160201b8310614259576904ee2d6d415b85acef8160201b830492506020015b662386f26fc10000831061427757662386f26fc10000830492506010015b6305f5e100831061428f576305f5e100830492506008015b61271083106142a357612710830492506004015b606483106142b5576064830492506002015b600a83106106fd5760010192915050565b6001600160a01b03841615610bd3576000607a6000846000815181106142ee576142ee615259565b6020026020010151815260200190815260200160002060009054906101000a90046001600160a01b0316905060005b835181101561438f57816001600160a01b0316607a600086848151811061434657614346615259565b6020908102919091018101518252810191909152604001600020546001600160a01b0316146143875760405162461bcd60e51b81526004016106cf90615750565b60010161431d565b506001600160a01b038116158015906143c057506001600160a01b03811660009081526078602052604090205460ff165b1561445d5760405163e483517760e01b81526001600160a01b0382169063e4835177906143f99033908990899089908990600401615c6a565b6020604051808303816000875af1158015614418573d6000803e3d6000fd5b505050506040513d601f19601f8201168201806040525081019061443c9190615cb0565b6144585760405162461bcd60e51b81526004016106cf90615ccd565b6108bd565b606d546001600160a01b0316156108bd57606d5460405163e483517760e01b81526001600160a01b039091169063e4835177906144a69033908990899089908990600401615c6a565b6020604051808303816000875af11580156144c5573d6000803e3d6000fd5b505050506040513d601f19601f820116820180604052508101906144e99190615cb0565b6108bd5760405162461bcd60e51b81526004016106cf90615ccd565b6001600160a01b03841661452b5760405162461bcd60e51b81526004016106cf90615d01565b33600061453785614027565b9050600061454485614027565b9050614555836000898585896139fb565b6000868152606a602090815260408083206001600160a01b038b16845290915281208054879290614587908490615717565b909155505060408051878152602081018790526001600160a01b03808a169260009291871691600080516020615d63833981519152910160405180910390a46129b183600089898989614072565b6001600160a01b0384166145fb5760405162461bcd60e51b81526004016106cf90615d01565b815183511461461c5760405162461bcd60e51b81526004016106cf90615640565b3361462c816000878787876139fb565b60005b84518110156146c85783818151811061464a5761464a615259565b6020026020010151606a600087848151811061466857614668615259565b602002602001015181526020019081526020016000206000886001600160a01b03166001600160a01b0316815260200190815260200160002060008282546146b09190615717565b909155508190506146c081615285565b91505061462f565b50846001600160a01b031660006001600160a01b0316826001600160a01b0316600080516020615d43833981519152878760405161470792919061572a565b60405180910390a46108bd81600087878787613a07565b508054600082559060005260206000209081019061077591905b80821115610b815780546001600160b01b0319168155600101614738565b6001600160a01b038116811461077557600080fd5b6000806040838503121561477e57600080fd5b823561478981614756565b946020939093013593505050565b6001600160e01b03198116811461077557600080fd5b6000602082840312156147bf57600080fd5b813561184181614797565b6000602082840312156147dc57600080fd5b813561184181614756565b60005b838110156148025781810151838201526020016147ea565b50506000910152565b600081518084526148238160208601602086016147e7565b601f01601f19169290920160200192915050565b602081526000611841602083018461480b565b60006020828403121561485c57600080fd5b5035919050565b600081518084526020808501945080840160005b8381101561489357815187529582019590820190600101614877565b509495945050505050565b6020815260006118416020830184614863565b60008083601f8401126148c357600080fd5b5081356001600160401b038111156148da57600080fd5b60208301915083602082850101111561098e57600080fd5b60008060006040848603121561490757600080fd5b8335925060208401356001600160401b0381111561492457600080fd5b614930868287016148b1565b9497909650939450505050565b60008083601f84011261494f57600080fd5b5081356001600160401b0381111561496657600080fd5b6020830191508360208260051b850101111561098e57600080fd5b60008060008060006060868803121561499957600080fd5b8535945060208601356001600160401b03808211156149b757600080fd5b6149c389838a0161493d565b909650945060408801359150808211156149dc57600080fd5b506149e98882890161493d565b969995985093965092949392505050565b6001600160a01b0391909116815260200190565b60008060408385031215614a2157600080fd5b50508035926020909101359150565b6001600160a01b03929092168252602082015260400190565b634e487b7160e01b600052604160045260246000fd5b601f8201601f191681016001600160401b0381118282101715614a8457614a84614a49565b6040525050565b60006001600160401b03821115614aa457614aa4614a49565b5060051b60200190565b600082601f830112614abf57600080fd5b81356020614acc82614a8b565b604051614ad98282614a5f565b83815260059390931b8501820192828101915086841115614af957600080fd5b8286015b84811015614b145780358352918301918301614afd565b509695505050505050565b60006001600160401b03821115614b3857614b38614a49565b50601f01601f191660200190565b600082601f830112614b5757600080fd5b8135614b6281614b1f565b604051614b6f8282614a5f565b828152856020848701011115614b8457600080fd5b82602086016020830137600092810160200192909252509392505050565b600080600080600060a08688031215614bba57600080fd5b8535614bc581614756565b94506020860135614bd581614756565b935060408601356001600160401b0380821115614bf157600080fd5b614bfd89838a01614aae565b94506060880135915080821115614c1357600080fd5b614c1f89838a01614aae565b93506080880135915080821115614c3557600080fd5b50614c4288828901614b46565b9150509295509295909350565b60008060208385031215614c6257600080fd5b82356001600160401b03811115614c7857600080fd5b614c84858286016148b1565b90969095509350505050565b600080600060408486031215614ca557600080fd5b8335614cb081614756565b925060208401356001600160401b0381111561492457600080fd5b600081518084526020808501945080840160005b838110156148935781516001600160a01b031687529582019590820190600101614cdf565b6020815260006118416020830184614ccb565b60008060008060408587031215614d2d57600080fd5b84356001600160401b0380821115614d4457600080fd5b614d508883890161493d565b90965094506020870135915080821115614d6957600080fd5b50614d768782880161493d565b95989497509550505050565b600080600080600060608688031215614d9a57600080fd5b8535614da581614756565b945060208601356001600160401b03808211156149b757600080fd5b801515811461077557600080fd5b60008060008060608587031215614de557600080fd5b8435614df081614756565b935060208501356001600160401b03811115614e0b57600080fd5b614e17878288016148b1565b9094509250506040850135614e2b81614dc1565b939692955090935050565b60008060408385031215614e4957600080fd5b82356001600160401b0380821115614e6057600080fd5b614e6c86838701614b46565b93506020850135915080821115614e8257600080fd5b50614e8f85828601614b46565b9150509250929050565b60008060408385031215614eac57600080fd5b82356001600160401b0380821115614ec357600080fd5b818501915085601f830112614ed757600080fd5b81356020614ee482614a8b565b604051614ef18282614a5f565b83815260059390931b8501820192828101915089841115614f1157600080fd5b948201945b83861015614f38578535614f2981614756565b82529482019490820190614f16565b96505086013592505080821115614f4e57600080fd5b50614e8f85828601614aae565b60008060008060008060608789031215614f7457600080fd5b86356001600160401b0380821115614f8b57600080fd5b614f978a838b0161493d565b90985096506020890135915080821115614fb057600080fd5b614fbc8a838b0161493d565b90965094506040890135915080821115614fd557600080fd5b50614fe289828a0161493d565b979a9699509497509295939492505050565b60008060006040848603121561500957600080fd5b83356001600160401b0381111561501f57600080fd5b61502b868287016148b1565b909450925050602084013561503f81614dc1565b809150509250925092565b6000806040838503121561505d57600080fd5b823561506881614756565b9150602083013561507881614dc1565b809150509250929050565b60006020828403121561509557600080fd5b813561184181614dc1565b6040815260006150b36040830185614ccb565b82810360208401526150c58185614863565b95945050505050565b600080604083850312156150e157600080fd5b82356150ec81614756565b9150602083013561507881614756565b600080600080600060a0868803121561511457600080fd5b853561511f81614756565b9450602086013561512f81614756565b9350604086013592506060860135915060808601356001600160401b0381111561515857600080fd5b614c4288828901614b46565b60208082526024908201527f41646d696e436f6e74726f6c3a204d757374206265206f776e6572206f7220616040820152633236b4b760e11b606082015260800190565b600181811c908216806151bc57607f821691505b602082108103611bea57634e487b7160e01b600052602260045260246000fd5b602080825260159082015274115e1d195b9cda5bdb88189b1858dadb1a5cdd1959605a1b604082015260600190565b6020808252602e908201527f455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e60408201526d195c881bdc88185c1c1c9bdd995960921b606082015260800190565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016152975761529761526f565b5060010190565b6020808252600d908201526c125b9d985b1a59081a5b9c1d5d609a1b604082015260600190565b6000808335601e198436030181126152dc57600080fd5b8301803591506001600160401b038211156152f657600080fd5b60200191503681900382131561098e57600080fd5b6020808252600d908201526c24b73b30b634b2103a37b5b2b760991b604082015260600190565b6000815461533f816151a8565b60018281168015615357576001811461536c5761539b565b60ff198416875282151583028701945061539b565b8560005260208060002060005b858110156153925781548a820152908401908201615379565b50505082870194505b5050505092915050565b60006153ba6153b48386615332565b84615332565b949350505050565b6000602082840312156153d457600080fd5b81516001600160401b038111156153ea57600080fd5b8201601f810184136153fb57600080fd5b805161540681614b1f565b6040516154138282614a5f565b82815286602084860101111561542857600080fd5b61133b8360208301602087016147e7565b60006154458285615332565b83516154558183602088016147e7565b01949350505050565b601f82111561086b57600081815260208120601f850160051c810160208610156154855750805b601f850160051c820191505b818110156111e757828155600101615491565b600019600383901b1c191660019190911b1790565b6001600160401b038311156154d0576154d0614a49565b6154e4836154de83546151a8565b8361545e565b6000601f84116001811461551257600085156155005750838201355b61550a86826154a4565b8455506108bd565b600083815260209020601f19861690835b828110156155435786850135825560209485019460019092019101615523565b50868210156155605760001960f88860031b161c19848701351681555b505060018560011b0183555050505050565b81835260006001600160fb1b0383111561558b57600080fd5b8260051b80836020870137939093016020019392505050565b6040808252810184905260008560608301825b878110156155e75782356155ca81614756565b6001600160a01b03168252602092830192909101906001016155b7565b5083810360208501526155fb818688615572565b98975050505050505050565b80820281158282048414176106fd576106fd61526f565b60008261563b57634e487b7160e01b600052601260045260246000fd5b500490565b60208082526028908201527f455243313135353a2069647320616e6420616d6f756e7473206c656e677468206040820152670dad2e6dac2e8c6d60c31b606082015260800190565b60208082526025908201527f455243313135353a207472616e7366657220746f20746865207a65726f206164604082015264647265737360d81b606082015260800190565b6020808252602a908201527f455243313135353a20696e73756666696369656e742062616c616e636520666f60408201526939103a3930b739b332b960b11b606082015260800190565b808201808211156106fd576106fd61526f565b6040815260006150b36040830185614863565b818103818111156106fd576106fd61526f565b6020808252601c908201527b4d69736d61746368656420746f6b656e206f726967696e61746f727360201b604082015260600190565b6001600160a01b03861681526060602082018190526000906157ab9083018688615572565b82810360408401526155fb818587615572565b6020808252602b908201527f496e697469616c697a61626c653a20636f6e7472616374206973206e6f74206960408201526a6e697469616c697a696e6760a81b606082015260800190565b600082601f83011261581a57600080fd5b8151602061582782614a8b565b6040516158348282614a5f565b83815260059390931b850182019282810191508684111561585457600080fd5b8286015b84811015614b145780518352918301918301615858565b6000806040838503121561588257600080fd5b82516001600160401b038082111561589957600080fd5b818501915085601f8301126158ad57600080fd5b815160206158ba82614a8b565b6040516158c78282614a5f565b83815260059390931b85018201928281019150898411156158e757600080fd5b948201945b8386101561590e5785516158ff81614756565b825294820194908201906158ec565b9188015191965090935050508082111561592757600080fd5b50614e8f85828601615809565b634e487b7160e01b600052603160045260246000fd5b6001600160a01b0386811682528516602082015260a06040820181905260009061597690830186614863565b82810360608401526159888186614863565b905082810360808401526155fb818561480b565b6000602082840312156159ae57600080fd5b815161184181614797565b600060033d11156159d25760046000803e5060005160e01c5b90565b600060443d10156159e35790565b6040516003193d81016004833e81513d6001600160401b038160248401118184111715615a1257505050505090565b8285019150815181811115615a2a5750505050505090565b843d8701016020828501011115615a445750505050505090565b615a5360208286010187614a5f565b509095945050505050565b60208082526028908201527f455243313135353a204552433131353552656365697665722072656a656374656040820152676420746f6b656e7360c01b606082015260800190565b60208082526023908201527f455243313135353a206275726e2066726f6d20746865207a65726f206164647260408201526265737360e81b606082015260800190565b60208082526024908201527f455243313135353a206275726e20616d6f756e7420657863656564732062616c604082015263616e636560e01b606082015260800190565b81516001600160401b03811115615b4657615b46614a49565b615b5a81615b5484546151a8565b8461545e565b602080601f831160018114615b895760008415615b775750858301515b615b8185826154a4565b8655506111e7565b600085815260208120601f198616915b82811015615bb857888601518255948401946001909101908401615b99565b5085821015615bd65787850151600019600388901b60f8161c191681555b5050505050600190811b01905550565b6001600160a01b0385168152608060208201819052600090615c0a90830186614ccb565b8281036040840152615c1c8186614863565b905082810360608401526141e58185614863565b6001600160a01b03868116825285166020820152604081018490526060810183905260a0608082018190526000906141e59083018461480b565b6001600160a01b03868116825285811660208301528416604082015260a060608201819052600090615c9e90830185614863565b82810360808401526155fb8185614863565b600060208284031215615cc257600080fd5b815161184181614dc1565b6020808252601a9082015279457874656e73696f6e20617070726f76616c206661696c75726560301b604082015260600190565b60208082526021908201527f455243313135353a206d696e7420746f20746865207a65726f206164647265736040820152607360f81b60608201526080019056fe4a39dc06d4c0dbc64b70af90fd698a233a518aa5d07e595d983b8c0526c8f7fbc3d58168c5ae7397731d063d5bbf3d657854427343f4c083240f7aacaa2d0f62a2646970667358221220ddc28c80bfaef944d29c9b26274da777bca8c243e01c3d4c78b4dcb61dcdc10064736f6c63430008130033",
  "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:52423:81",
        "statements": [
          {
            "nodeType": "YulBlock",
            "src": "6:3:81",
            "statements": []
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "59:86: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": "82:5:81"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "93:5:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "108:3:81",
                                        "type": "",
                                        "value": "160"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "113:1:81",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nodeType": "YulIdentifier",
                                      "src": "104:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "104:11:81"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "117:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "sub",
                                  "nodeType": "YulIdentifier",
                                  "src": "100:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "100:19:81"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "89:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "89:31:81"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "79:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "79:42:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "72:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "72:50:81"
                  },
                  "nodeType": "YulIf",
                  "src": "69:70:81"
                }
              ]
            },
            "name": "validator_revert_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "48:5:81",
                "type": ""
              }
            ],
            "src": "14:131:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "237:228:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "283:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "292:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "295:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "285:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "285:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "285:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "258:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "267:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "254:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "254:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "279:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "250:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "250:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "247:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "308:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "334:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "321:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "321:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "312:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "378:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "353:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "353:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "353:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "393:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "403:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "393:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "417:42:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "444:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "455:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "440:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "440:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "427:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "427:32:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "417:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "195:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "206:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "218:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "226:6:81",
                "type": ""
              }
            ],
            "src": "150:315:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "571:76:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "581:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "593:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "604:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "589:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "589:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "581:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "623:9:81"
                      },
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "634:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "616:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "616:25:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "616:25:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "540:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "551:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "562:4:81",
                "type": ""
              }
            ],
            "src": "470:177:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "696:87:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "761:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "770:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "773:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "763:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "763:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "763:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "719:5:81"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "730:5:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "741:3:81",
                                    "type": "",
                                    "value": "224"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "746:10:81",
                                    "type": "",
                                    "value": "0xffffffff"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "737:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "737:20:81"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "726:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "726:32:81"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "716:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "716:43:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "709:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "709:51:81"
                  },
                  "nodeType": "YulIf",
                  "src": "706:71:81"
                }
              ]
            },
            "name": "validator_revert_bytes4",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "685:5:81",
                "type": ""
              }
            ],
            "src": "652:131:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "857:176:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "903:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "912:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "915:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "905:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "905:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "905:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "878:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "887:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "874:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "874:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "899:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "870:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "870:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "867:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "928:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "954:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "941:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "941:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "932:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "997:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bytes4",
                      "nodeType": "YulIdentifier",
                      "src": "973:23:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "973:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "973:30:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1012:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "1022:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "1012:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bytes4",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "823:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "834:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "846:6:81",
                "type": ""
              }
            ],
            "src": "788:245:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1133:92:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "1143:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1155:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1166:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "1151:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1151:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "1143:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1185:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value0",
                                "nodeType": "YulIdentifier",
                                "src": "1210:6:81"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nodeType": "YulIdentifier",
                              "src": "1203:6:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "1203:14:81"
                          }
                        ],
                        "functionName": {
                          "name": "iszero",
                          "nodeType": "YulIdentifier",
                          "src": "1196:6:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1196:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1178:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1178:41:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1178:41:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "1102:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "1113:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "1124:4:81",
                "type": ""
              }
            ],
            "src": "1038:187:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1300:177:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1346:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1355:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1358:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "1348:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1348:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1348:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "1321:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "1330:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "1317:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1317:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1342:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "1313:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1313:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "1310:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1371:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1397:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "1384:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1384:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "1375:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "1441:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "1416:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1416:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1416:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1456:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "1466:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "1456:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "1266:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "1277:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "1289:6:81",
                "type": ""
              }
            ],
            "src": "1230:247:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1548:184:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1558:10:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "1567:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "1562:1:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1627:63:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "name": "dst",
                                  "nodeType": "YulIdentifier",
                                  "src": "1652:3:81"
                                },
                                {
                                  "name": "i",
                                  "nodeType": "YulIdentifier",
                                  "src": "1657:1:81"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "1648:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "1648:11:81"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "src",
                                      "nodeType": "YulIdentifier",
                                      "src": "1671:3:81"
                                    },
                                    {
                                      "name": "i",
                                      "nodeType": "YulIdentifier",
                                      "src": "1676:1:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "1667:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "1667:11:81"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nodeType": "YulIdentifier",
                                "src": "1661:5:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "1661:18:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "1641:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1641:39:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1641:39:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "1588:1:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "1591:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "1585:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1585:13:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "1599:19:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "1601:15:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "1610:1:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1613:2:81",
                              "type": "",
                              "value": "32"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "1606:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1606:10:81"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "1601:1:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "1581:3:81",
                    "statements": []
                  },
                  "src": "1577:113:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dst",
                            "nodeType": "YulIdentifier",
                            "src": "1710:3:81"
                          },
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "1715:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1706:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1706:16:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1724:1:81",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1699:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1699:27:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1699:27:81"
                }
              ]
            },
            "name": "copy_memory_to_memory_with_cleanup",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "src",
                "nodeType": "YulTypedName",
                "src": "1526:3:81",
                "type": ""
              },
              {
                "name": "dst",
                "nodeType": "YulTypedName",
                "src": "1531:3:81",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "1536:6:81",
                "type": ""
              }
            ],
            "src": "1482:250:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1787:221:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1797:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "1817:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "1811:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1811:12:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "1801:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "1839:3:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "1844:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1832:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1832:19:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1832:19:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "1899:5:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1906:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1895:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1895:16:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "1917:3:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1922:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1913:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1913:14:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "1929:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "copy_memory_to_memory_with_cleanup",
                      "nodeType": "YulIdentifier",
                      "src": "1860:34:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1860:76:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1860:76:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1945:57:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "1960:3:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "length",
                                    "nodeType": "YulIdentifier",
                                    "src": "1973:6:81"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "1981:2:81",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nodeType": "YulIdentifier",
                                  "src": "1969:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1969:15:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "1990:2:81",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "not",
                                  "nodeType": "YulIdentifier",
                                  "src": "1986:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1986:7:81"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "1965:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "1965:29:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1956:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1956:39:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1997:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "1952:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1952:50:81"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "1945:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_string",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "1764:5:81",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "1771:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "1779:3:81",
                "type": ""
              }
            ],
            "src": "1737:271:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2134:99:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2151:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2162:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "2144:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2144:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2144:21:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2174:53:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "2200:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2212:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "2223:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "2208:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2208:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string",
                      "nodeType": "YulIdentifier",
                      "src": "2182:17:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2182:45:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "2174: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": "2103:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "2114:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "2125:4:81",
                "type": ""
              }
            ],
            "src": "2013:220:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2308:110:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2354:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2363:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2366:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "2356:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2356:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2356:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "2329:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2338:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "2325:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2325:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2350:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "2321:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2321:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "2318:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2379:33:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2402:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "2389:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2389:23:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "2379:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "2274:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "2285:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "2297:6:81",
                "type": ""
              }
            ],
            "src": "2238:180:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2484:374:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2494:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "2514:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "2508:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2508:12:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "2498:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "2536:3:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "2541:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "2529:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2529:19:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2529:19:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2557:14:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "2567:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "2561:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2580:19:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "2591:3:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "2596:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "2587:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2587:12:81"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "2580:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2608:28:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "2626:5:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "2633:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "2622:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2622:14:81"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nodeType": "YulTypedName",
                      "src": "2612:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2645:10:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "2654:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "2649:1:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2713:120:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "2734:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "srcPtr",
                                  "nodeType": "YulIdentifier",
                                  "src": "2745:6:81"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nodeType": "YulIdentifier",
                                "src": "2739:5:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "2739:13:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "2727:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2727:26:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2727:26:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "2766:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "2777:3:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "2782:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "2773:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2773:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "2766:3:81"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "2798:25:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "2812:6:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "2820:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "2808:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2808:15:81"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nodeType": "YulIdentifier",
                            "src": "2798:6:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "2675:1:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "2678:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "2672:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2672:13:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "2686:18:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "2688:14:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "2697:1:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2700:1:81",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "2693:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2693:9:81"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "2688:1:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "2668:3:81",
                    "statements": []
                  },
                  "src": "2664:169:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2842:10:81",
                  "value": {
                    "name": "pos",
                    "nodeType": "YulIdentifier",
                    "src": "2849:3:81"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "2842:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_array_uint256_dyn",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "2461:5:81",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "2468:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "2476:3:81",
                "type": ""
              }
            ],
            "src": "2423:435:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "3014:110:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "3031:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3042:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "3024:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3024:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "3024:21:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3054:64:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "3091:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3103:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3114:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3099:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3099:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "3062:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3062:56:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "3054: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": "2983:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "2994:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "3005:4:81",
                "type": ""
              }
            ],
            "src": "2863:261:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "3202:275:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3251:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3260:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3263:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3253:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3253:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3253:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "3230:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "3238:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "3226:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "3226:17:81"
                          },
                          {
                            "name": "end",
                            "nodeType": "YulIdentifier",
                            "src": "3245:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "3222:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3222:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "3215:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3215:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "3212:55:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3276:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "3299:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "3286:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3286:20:81"
                  },
                  "variableNames": [
                    {
                      "name": "length",
                      "nodeType": "YulIdentifier",
                      "src": "3276:6:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3349:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3358:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3361:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3351:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3351:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3351:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "3321:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3329:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "3318:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3318:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "3315:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3374:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "3390:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3398:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "3386:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3386:17:81"
                  },
                  "variableNames": [
                    {
                      "name": "arrayPos",
                      "nodeType": "YulIdentifier",
                      "src": "3374:8:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3455:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3464:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3467:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3457:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3457:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3457:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "3426:6:81"
                              },
                              {
                                "name": "length",
                                "nodeType": "YulIdentifier",
                                "src": "3434:6:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "3422:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "3422:19:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3443:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3418:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3418:30:81"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "3450:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "3415:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3415:39:81"
                  },
                  "nodeType": "YulIf",
                  "src": "3412:59:81"
                }
              ]
            },
            "name": "abi_decode_string_calldata",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "3165:6:81",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "3173:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "arrayPos",
                "nodeType": "YulTypedName",
                "src": "3181:8:81",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "3191:6:81",
                "type": ""
              }
            ],
            "src": "3129:348:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "3589:372:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3635:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3644:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3647:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3637:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3637:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3637:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "3610:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3619:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "3606:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3606:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3631:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "3602:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3602:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "3599:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3660:33:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "3683:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "3670:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3670:23:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "3660:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3702:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3733:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3744:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3729:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3729:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "3716:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3716:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "3706:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3791:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3800:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3803:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3793:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3793:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3793:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "3763:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3771:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "3760:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3760:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "3757:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3816:85:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3873:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "3884:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3869:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3869:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "3893:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_string_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "3842:26:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3842:59:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "3820:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "3830:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3910:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "3920:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "3910:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3937:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "3947:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "3937:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint256t_string_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "3539:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "3550:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "3562:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "3570:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "3578:6:81",
                "type": ""
              }
            ],
            "src": "3482:479:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "4058:283:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4107:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4116:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4119:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "4109:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4109:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4109:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "4086:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "4094:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "4082:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "4082:17:81"
                          },
                          {
                            "name": "end",
                            "nodeType": "YulIdentifier",
                            "src": "4101:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "4078:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4078:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "4071:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4071:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "4068:55:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4132:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "4155:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "4142:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4142:20:81"
                  },
                  "variableNames": [
                    {
                      "name": "length",
                      "nodeType": "YulIdentifier",
                      "src": "4132:6:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4205:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4214:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4217:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "4207:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4207:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4207:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "4177:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4185:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "4174:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4174:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "4171:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4230:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "4246:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4254:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "4242:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4242:17:81"
                  },
                  "variableNames": [
                    {
                      "name": "arrayPos",
                      "nodeType": "YulIdentifier",
                      "src": "4230:8:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4319:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4328:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4331:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "4321:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4321:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4321:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "4282:6:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "4294:1:81",
                                    "type": "",
                                    "value": "5"
                                  },
                                  {
                                    "name": "length",
                                    "nodeType": "YulIdentifier",
                                    "src": "4297:6:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "4290:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "4290:14:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "4278:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "4278:27:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4307:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4274:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4274:38:81"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "4314:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "4271:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4271:47:81"
                  },
                  "nodeType": "YulIf",
                  "src": "4268:67:81"
                }
              ]
            },
            "name": "abi_decode_array_address_payable_dyn_calldata",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "4021:6:81",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "4029:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "arrayPos",
                "nodeType": "YulTypedName",
                "src": "4037:8:81",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "4047:6:81",
                "type": ""
              }
            ],
            "src": "3966:375:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "4528:683:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4574:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4583:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4586:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "4576:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4576:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4576:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "4549:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4558:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "4545:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4545:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4570:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "4541:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4541:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "4538:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4599:33:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "4622:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "4609:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4609:23:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "4599:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4641:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4672:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4683:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4668:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4668:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "4655:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4655:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "4645:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4696:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "4706:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "4700:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4751:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4760:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4763:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "4753:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4753:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4753:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "4739:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "4747:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "4736:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4736:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "4733:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4776:104:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4852:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "4863:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4848:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4848:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "4872:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "4802:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4802:78:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "4780:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "4790:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4889:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "4899:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "4889:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4916:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "4926:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "4916:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4943:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4976:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4987:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4972:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4972:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "4959:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4959:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "4947:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "5020:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5029:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5032:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "5022:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5022:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5022:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "5006:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "5016:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "5003:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5003:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "5000:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "5045:106:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5121:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "5132:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5117:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5117:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "5143:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "5071:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5071:80:81"
                  },
                  "variables": [
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "5049:8:81",
                      "type": ""
                    },
                    {
                      "name": "value4_1",
                      "nodeType": "YulTypedName",
                      "src": "5059:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5160:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "5170:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "5160:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5187:18:81",
                  "value": {
                    "name": "value4_1",
                    "nodeType": "YulIdentifier",
                    "src": "5197:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nodeType": "YulIdentifier",
                      "src": "5187: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": "4462:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "4473:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "4485:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "4493:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "4501:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "4509:6:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "4517:6:81",
                "type": ""
              }
            ],
            "src": "4346:865:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5317:102:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "5327:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "5339:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5350:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "5335:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5335:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "5327:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "5369:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "5384:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "5400:3:81",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "5405:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "5396:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "5396:11:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "5409:1:81",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "5392:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "5392:19:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "5380:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5380:32:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5362:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5362:51:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5362:51:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "5286:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "5297:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "5308:4:81",
                "type": ""
              }
            ],
            "src": "5216:203:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5511:161:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "5557:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5566:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5569:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "5559:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5559:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5559:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "5532:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5541:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "5528:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5528:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5553:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "5524:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5524:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "5521:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5582:33:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "5605:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "5592:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5592:23:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "5582:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5624:42:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5651:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5662:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5647:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5647:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "5634:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5634:32:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "5624:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint256t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "5469:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "5480:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "5492:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "5500:6:81",
                "type": ""
              }
            ],
            "src": "5424:248:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5806:145:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "5816:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "5828:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5839:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "5824:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5824:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "5816:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "5858:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "5873:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "5889:3:81",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "5894:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "5885:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "5885:11:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "5898:1:81",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "5881:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "5881:19:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "5869:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5869:32:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5851:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5851:51:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5851:51:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5922:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5933:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5918:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5918:18:81"
                      },
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "5938:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5911:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5911:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5911: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": "5767:9:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "5778:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "5786:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "5797:4:81",
                "type": ""
              }
            ],
            "src": "5677:274:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5988:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6005:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "6012:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "6017:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "6008:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6008:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5998:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5998:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5998:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6045:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6048:4:81",
                        "type": "",
                        "value": "0x41"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "6038:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6038:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "6038:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6069:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6072:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "6062:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6062:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "6062:15:81"
                }
              ]
            },
            "name": "panic_error_0x41",
            "nodeType": "YulFunctionDefinition",
            "src": "5956:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "6135:202:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6145:58:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "6167:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "size",
                                "nodeType": "YulIdentifier",
                                "src": "6183:4:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "6189:2:81",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "6179:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "6179:13:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "6198:2:81",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nodeType": "YulIdentifier",
                              "src": "6194:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "6194:7:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "6175:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6175:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "6163:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6163:40:81"
                  },
                  "variables": [
                    {
                      "name": "newFreePtr",
                      "nodeType": "YulTypedName",
                      "src": "6149:10:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "6278:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "6280:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6280:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6280:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nodeType": "YulIdentifier",
                            "src": "6221:10:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "6233:18:81",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nodeType": "YulIdentifier",
                          "src": "6218:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6218:34:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nodeType": "YulIdentifier",
                            "src": "6257:10:81"
                          },
                          {
                            "name": "memPtr",
                            "nodeType": "YulIdentifier",
                            "src": "6269:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nodeType": "YulIdentifier",
                          "src": "6254:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6254:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nodeType": "YulIdentifier",
                      "src": "6215:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6215:62:81"
                  },
                  "nodeType": "YulIf",
                  "src": "6212:88:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6316:2:81",
                        "type": "",
                        "value": "64"
                      },
                      {
                        "name": "newFreePtr",
                        "nodeType": "YulIdentifier",
                        "src": "6320:10:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "6309:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6309:22:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "6309:22:81"
                }
              ]
            },
            "name": "finalize_allocation",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "memPtr",
                "nodeType": "YulTypedName",
                "src": "6117:6:81",
                "type": ""
              },
              {
                "name": "size",
                "nodeType": "YulTypedName",
                "src": "6125:4:81",
                "type": ""
              }
            ],
            "src": "6088:249:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "6411:114:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "6455:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "6457:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6457:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6457:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "6427:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6435:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "6424:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6424:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "6421:56:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "6486:33:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "6502:1:81",
                            "type": "",
                            "value": "5"
                          },
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "6505:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "6498:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6498:14:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6514:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "6494:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6494:25:81"
                  },
                  "variableNames": [
                    {
                      "name": "size",
                      "nodeType": "YulIdentifier",
                      "src": "6486:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "array_allocation_size_array_uint256_dyn",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "6391:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "size",
                "nodeType": "YulTypedName",
                "src": "6402:4:81",
                "type": ""
              }
            ],
            "src": "6342:183:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "6594:660:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "6643:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6652:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6655:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "6645:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6645:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6645:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "6622:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "6630:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "6618:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "6618:17:81"
                          },
                          {
                            "name": "end",
                            "nodeType": "YulIdentifier",
                            "src": "6637:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "6614:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6614:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "6607:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6607:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "6604:55:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6668:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "6691:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "6678:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6678:20:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "6672:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6707:14:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "6717:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "6711:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6730:53:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "6780:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "array_allocation_size_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "6740:39:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6740:43:81"
                  },
                  "variables": [
                    {
                      "name": "_3",
                      "nodeType": "YulTypedName",
                      "src": "6734:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6792:23:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6812:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "6806:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6806:9:81"
                  },
                  "variables": [
                    {
                      "name": "memPtr",
                      "nodeType": "YulTypedName",
                      "src": "6796:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "6844:6:81"
                      },
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "6852:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "finalize_allocation",
                      "nodeType": "YulIdentifier",
                      "src": "6824:19:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6824:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "6824:31:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6864:17:81",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "6875:6:81"
                  },
                  "variables": [
                    {
                      "name": "dst",
                      "nodeType": "YulTypedName",
                      "src": "6868:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "6897:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "6905:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "6890:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6890:18:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "6890:18:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "6917:22:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "6928:6:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "6936:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "6924:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6924:15:81"
                  },
                  "variableNames": [
                    {
                      "name": "dst",
                      "nodeType": "YulIdentifier",
                      "src": "6917:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6948:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "6970:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "6982:1:81",
                                "type": "",
                                "value": "5"
                              },
                              {
                                "name": "_1",
                                "nodeType": "YulIdentifier",
                                "src": "6985:2:81"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "6978:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "6978:10:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "6966:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6966:23:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "6991:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "6962:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6962:32:81"
                  },
                  "variables": [
                    {
                      "name": "srcEnd",
                      "nodeType": "YulTypedName",
                      "src": "6952:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7022:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7031:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7034:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "7024:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7024:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7024:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "7009:6:81"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "7017:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "7006:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7006:15:81"
                  },
                  "nodeType": "YulIf",
                  "src": "7003:35:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7047:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "7062:6:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "7070:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "7058:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7058:15:81"
                  },
                  "variables": [
                    {
                      "name": "src",
                      "nodeType": "YulTypedName",
                      "src": "7051:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7138:86:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "7159:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "src",
                                  "nodeType": "YulIdentifier",
                                  "src": "7177:3:81"
                                }
                              ],
                              "functionName": {
                                "name": "calldataload",
                                "nodeType": "YulIdentifier",
                                "src": "7164:12:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "7164:17:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "7152:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7152:30:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7152:30:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "7195:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "7206:3:81"
                            },
                            {
                              "name": "_2",
                              "nodeType": "YulIdentifier",
                              "src": "7211:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "7202:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7202:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "dst",
                            "nodeType": "YulIdentifier",
                            "src": "7195:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "src",
                        "nodeType": "YulIdentifier",
                        "src": "7093:3:81"
                      },
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "7098:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "7090:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7090:15:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "7106:23:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "7108:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "src",
                              "nodeType": "YulIdentifier",
                              "src": "7119:3:81"
                            },
                            {
                              "name": "_2",
                              "nodeType": "YulIdentifier",
                              "src": "7124:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "7115:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7115:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "src",
                            "nodeType": "YulIdentifier",
                            "src": "7108:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "7086:3:81",
                    "statements": []
                  },
                  "src": "7082:142:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "7233:15:81",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "7242:6:81"
                  },
                  "variableNames": [
                    {
                      "name": "array",
                      "nodeType": "YulIdentifier",
                      "src": "7233:5:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_array_uint256_dyn",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "6568:6:81",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "6576:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "array",
                "nodeType": "YulTypedName",
                "src": "6584:5:81",
                "type": ""
              }
            ],
            "src": "6530:724:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "7316:129:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7360:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "7362:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7362:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7362:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "7332:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "7340:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "7329:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7329:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "7326:56:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "7391:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "length",
                                "nodeType": "YulIdentifier",
                                "src": "7411:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "7419:2:81",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "7407:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "7407:15:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "7428:2:81",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nodeType": "YulIdentifier",
                              "src": "7424:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "7424:7:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "7403:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7403:29:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "7434:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "7399:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7399:40:81"
                  },
                  "variableNames": [
                    {
                      "name": "size",
                      "nodeType": "YulIdentifier",
                      "src": "7391:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "array_allocation_size_bytes",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "7296:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "size",
                "nodeType": "YulTypedName",
                "src": "7307:4:81",
                "type": ""
              }
            ],
            "src": "7259:186:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "7502:456:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7551:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7560:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7563:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "7553:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7553:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7553:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "7530:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "7538:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "7526:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "7526:17:81"
                          },
                          {
                            "name": "end",
                            "nodeType": "YulIdentifier",
                            "src": "7545:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "7522:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7522:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "7515:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7515:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "7512:55:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7576:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "7599:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "7586:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7586:20:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "7580:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7615:41:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "7653:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "array_allocation_size_bytes",
                      "nodeType": "YulIdentifier",
                      "src": "7625:27:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7625:31:81"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "7619:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7665:23:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "7685:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "7679:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7679:9:81"
                  },
                  "variables": [
                    {
                      "name": "memPtr",
                      "nodeType": "YulTypedName",
                      "src": "7669:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "7717:6:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "7725:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "finalize_allocation",
                      "nodeType": "YulIdentifier",
                      "src": "7697:19:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7697:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "7697:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "7744:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "7752:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "7737:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7737:18:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "7737:18:81"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7803:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7812:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7815:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "7805:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7805:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7805:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "7778:6:81"
                              },
                              {
                                "name": "_1",
                                "nodeType": "YulIdentifier",
                                "src": "7786:2:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "7774:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "7774:15:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "7791:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "7770:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7770:26:81"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "7798:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "7767:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7767:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "7764:55:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nodeType": "YulIdentifier",
                            "src": "7845:6:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "7853:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "7841:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7841:17:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "7864:6:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "7872:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "7860:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7860:17:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "7879:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldatacopy",
                      "nodeType": "YulIdentifier",
                      "src": "7828:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7828:54:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "7828:54:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "memPtr",
                                "nodeType": "YulIdentifier",
                                "src": "7906:6:81"
                              },
                              {
                                "name": "_1",
                                "nodeType": "YulIdentifier",
                                "src": "7914:2:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "7902:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "7902:15:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "7919:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "7898:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7898:26:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "7926:1:81",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "7891:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7891:37:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "7891:37:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "7937:15:81",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "7946:6:81"
                  },
                  "variableNames": [
                    {
                      "name": "array",
                      "nodeType": "YulIdentifier",
                      "src": "7937:5:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_bytes",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "7476:6:81",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "7484:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "array",
                "nodeType": "YulTypedName",
                "src": "7492:5:81",
                "type": ""
              }
            ],
            "src": "7450:508:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "8160:874:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "8207:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8216:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8219:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "8209:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8209:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8209:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "8181:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8190:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "8177:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8177:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "8202:3:81",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "8173:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8173:33:81"
                  },
                  "nodeType": "YulIf",
                  "src": "8170:53:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8232:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "8258:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "8245:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8245:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "8236:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "8302:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "8277:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8277:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "8277:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8317:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "8327:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "8317:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8341:47:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8373:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "8384:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8369:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8369:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "8356:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8356:32:81"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nodeType": "YulTypedName",
                      "src": "8345:7:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nodeType": "YulIdentifier",
                        "src": "8422:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "8397:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8397:33:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "8397:33:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8439:17:81",
                  "value": {
                    "name": "value_1",
                    "nodeType": "YulIdentifier",
                    "src": "8449:7:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "8439:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8465:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8496:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "8507:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8492:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8492:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "8479:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8479:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "8469:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8520:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "8530:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "8524:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "8575:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8584:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8587:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "8577:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8577:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8577:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "8563:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "8571:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "8560:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8560:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "8557:34:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8600:71:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8643:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "8654:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8639:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8639:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "8663:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "8610:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8610:61:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "8600:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8680:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8713:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "8724:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8709:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8709:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "8696:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8696:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "8684:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "8757:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8766:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8769:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "8759:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8759:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8759:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "8743:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "8753:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "8740:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8740:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "8737:36:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8782:73:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8825:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "8836:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8821:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8821:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "8847:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "8792:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8792:63:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "8782:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "8864:49:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8897:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "8908:3:81",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8893:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8893:19:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "8880:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8880:33:81"
                  },
                  "variables": [
                    {
                      "name": "offset_2",
                      "nodeType": "YulTypedName",
                      "src": "8868:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "8942:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8951:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "8954:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "8944:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8944:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8944:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_2",
                        "nodeType": "YulIdentifier",
                        "src": "8928:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "8938:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "8925:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8925:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "8922:36:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8967:61:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8998:9:81"
                          },
                          {
                            "name": "offset_2",
                            "nodeType": "YulIdentifier",
                            "src": "9009:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8994:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8994:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "9020:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_bytes",
                      "nodeType": "YulIdentifier",
                      "src": "8977:16:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8977:51:81"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nodeType": "YulIdentifier",
                      "src": "8967:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "8094:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "8105:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "8117:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "8125:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "8133:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "8141:6:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "8149:6:81",
                "type": ""
              }
            ],
            "src": "7963:1071:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "9129:321:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "9175:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9184:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9187:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "9177:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "9177:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "9177:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "9150:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9159:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "9146:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9146:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9171:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "9142:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9142:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "9139:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9200:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "9227:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "9214:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9214:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "9204:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "9280:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9289:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9292:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "9282:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "9282:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "9282:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "9252:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9260:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "9249:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9249:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "9246:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9305:85:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9362:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "9373:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "9358:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9358:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "9382:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_string_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "9331:26:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9331:59:81"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nodeType": "YulTypedName",
                      "src": "9309:8:81",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "9319:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9399:18:81",
                  "value": {
                    "name": "value0_1",
                    "nodeType": "YulIdentifier",
                    "src": "9409:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "9399:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9426:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "9436:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "9426:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_string_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "9087:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "9098:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "9110:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "9118:6:81",
                "type": ""
              }
            ],
            "src": "9039:411:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "9562:439:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "9608:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9617:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9620:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "9610:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "9610:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "9610:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "9583:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9592:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "9579:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9579:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9604:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "9575:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9575:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "9572:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9633:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "9659:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "9646:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9646:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "9637:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "9703:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "9678:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9678:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "9678:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9718:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "9728:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "9718:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9742:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9773:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "9784:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "9769:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9769:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "9756:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9756:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "9746:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "9831:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9840:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9843:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "9833:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "9833:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "9833:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "9803:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9811:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "9800:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9800:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "9797:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "9856:85:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9913:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "9924:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "9909:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9909:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "9933:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_string_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "9882:26:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9882:59:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "9860:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "9870:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9950:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "9960:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "9950:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9977:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "9987:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "9977:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_string_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "9512:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "9523:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "9535:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "9543:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "9551:6:81",
                "type": ""
              }
            ],
            "src": "9455:546:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "10067:400:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "10077:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "10097:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "10091:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10091:12:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "10081:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "10119:3:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "10124:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "10112:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10112:19:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "10112:19:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "10140:14:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "10150:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "10144:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "10163:19:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "10174:3:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "10179:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "10170:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10170:12:81"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "10163:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "10191:28:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "10209:5:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "10216:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "10205:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10205:14:81"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nodeType": "YulTypedName",
                      "src": "10195:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "10228:10:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "10237:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "10232:1:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "10296:146:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "10317:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "srcPtr",
                                      "nodeType": "YulIdentifier",
                                      "src": "10332:6:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "mload",
                                    "nodeType": "YulIdentifier",
                                    "src": "10326:5:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "10326:13:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "10349:3:81",
                                          "type": "",
                                          "value": "160"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "10354:1:81",
                                          "type": "",
                                          "value": "1"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "shl",
                                        "nodeType": "YulIdentifier",
                                        "src": "10345:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "10345:11:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "10358:1:81",
                                      "type": "",
                                      "value": "1"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "sub",
                                    "nodeType": "YulIdentifier",
                                    "src": "10341:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "10341:19:81"
                                }
                              ],
                              "functionName": {
                                "name": "and",
                                "nodeType": "YulIdentifier",
                                "src": "10322:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "10322:39:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "10310:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10310:52:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "10310:52:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "10375:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "10386:3:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "10391:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "10382:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10382:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "10375:3:81"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "10407:25:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "10421:6:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "10429:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "10417:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10417:15:81"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nodeType": "YulIdentifier",
                            "src": "10407:6:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "10258:1:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "10261:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "10255:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10255:13:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "10269:18:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "10271:14:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "10280:1:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "10283:1:81",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "10276:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10276:9:81"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "10271:1:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "10251:3:81",
                    "statements": []
                  },
                  "src": "10247:195:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "10451:10:81",
                  "value": {
                    "name": "pos",
                    "nodeType": "YulIdentifier",
                    "src": "10458:3:81"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "10451:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_array_address_dyn",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "10044:5:81",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "10051:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "10059:3:81",
                "type": ""
              }
            ],
            "src": "10006:461:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "10623:110:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "10640:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10651:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "10633:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10633:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "10633:21:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "10663:64:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "10700:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "10712:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "10723:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "10708:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10708:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_address_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "10671:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10671:56:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "10663: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": "10592:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "10603:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "10614:4:81",
                "type": ""
              }
            ],
            "src": "10472:261:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "10903:632:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "10949:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "10958:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "10961:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "10951:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10951:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "10951:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "10924:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "10933:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "10920:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10920:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10945:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "10916:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10916:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "10913:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "10974:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "11001:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "10988:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10988:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "10978:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "11020:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "11030:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "11024:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "11075:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "11084:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "11087:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "11077:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "11077:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "11077:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "11063:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "11071:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "11060:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11060:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "11057:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "11100:104:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "11176:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "11187:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11172:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11172:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "11196:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "11126:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11126:78:81"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nodeType": "YulTypedName",
                      "src": "11104:8:81",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "11114:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "11213:18:81",
                  "value": {
                    "name": "value0_1",
                    "nodeType": "YulIdentifier",
                    "src": "11223:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "11213:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "11240:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "11250:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "11240:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "11267:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "11300:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11311:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11296:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11296:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "11283:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11283:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "11271:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "11344:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "11353:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "11356:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "11346:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "11346:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "11346:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "11330:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "11340:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "11327:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11327:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "11324:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "11369:106:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "11445:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "11456:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11441:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11441:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "11467:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "11395:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11395:80:81"
                  },
                  "variables": [
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "11373:8:81",
                      "type": ""
                    },
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "11383:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "11484:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "11494:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "11484:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "11511:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "11521:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "11511: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": "10845:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "10856:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "10868:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "10876:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "10884:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "10892:6:81",
                "type": ""
              }
            ],
            "src": "10738:797:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "11714:750:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "11760:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "11769:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "11772:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "11762:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "11762:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "11762:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "11735:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "11744:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "11731:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11731:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11756:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "11727:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11727:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "11724:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "11785:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "11811:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "11798:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11798:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "11789:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "11855:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "11830:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11830:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11830:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "11870:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "11880:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "11870:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "11894:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "11925:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11936:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "11921:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11921:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "11908:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11908:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "11898:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "11949:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "11959:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "11953:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "12004:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12013:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12016:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "12006:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12006:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "12006:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "11992:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "12000:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "11989:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11989:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "11986:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "12029:104:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12105:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "12116:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "12101:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12101:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "12125:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "12055:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12055:78:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "12033:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "12043:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "12142:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "12152:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "12142:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "12169:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "12179:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "12169:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "12196:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12229:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "12240:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "12225:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12225:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "12212:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12212:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "12200:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "12273:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12282:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12285:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "12275:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12275:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "12275:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "12259:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "12269:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "12256:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12256:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "12253:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "12298:106:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12374:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "12385:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "12370:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12370:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "12396:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "12324:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12324:80:81"
                  },
                  "variables": [
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "12302:8:81",
                      "type": ""
                    },
                    {
                      "name": "value4_1",
                      "nodeType": "YulTypedName",
                      "src": "12312:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "12413:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "12423:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "12413:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "12440:18:81",
                  "value": {
                    "name": "value4_1",
                    "nodeType": "YulIdentifier",
                    "src": "12450:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nodeType": "YulIdentifier",
                      "src": "12440:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "11648:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "11659:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "11671:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "11679:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "11687:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "11695:6:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "11703:6:81",
                "type": ""
              }
            ],
            "src": "11540:924:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "12511:76:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "12565:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12574:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12577:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "12567:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12567:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "12567:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "12534:5:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "value",
                                    "nodeType": "YulIdentifier",
                                    "src": "12555:5:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "iszero",
                                  "nodeType": "YulIdentifier",
                                  "src": "12548:6:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "12548:13:81"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nodeType": "YulIdentifier",
                              "src": "12541:6:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "12541:21:81"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "12531:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12531:32:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "12524:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12524:40:81"
                  },
                  "nodeType": "YulIf",
                  "src": "12521:60:81"
                }
              ]
            },
            "name": "validator_revert_bool",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "12500:5:81",
                "type": ""
              }
            ],
            "src": "12469:118:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "12713:560:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "12759:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12768:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12771:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "12761:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12761:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "12761:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "12734:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12743:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "12730:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12730:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "12755:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "12726:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12726:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "12723:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "12784:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "12810:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "12797:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12797:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "12788:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "12854:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "12829:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12829:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "12829:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "12869:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "12879:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "12869:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "12893:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12924:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "12935:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "12920:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12920:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "12907:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12907:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "12897:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "12982:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12991:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12994:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "12984:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "12984:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "12984:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "12954:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "12962:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "12951:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12951:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "12948:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13007:85:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "13064:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "13075:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "13060:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13060:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "13084:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_string_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "13033:26:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13033:59:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "13011:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "13021:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13101:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "13111:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "13101:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13128:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "13138:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "13128:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13155:47:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "13187:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "13198:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "13183:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13183:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "13170:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13170:32:81"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nodeType": "YulTypedName",
                      "src": "13159:7:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nodeType": "YulIdentifier",
                        "src": "13233:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bool",
                      "nodeType": "YulIdentifier",
                      "src": "13211:21:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13211:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "13211:30:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13250:17:81",
                  "value": {
                    "name": "value_1",
                    "nodeType": "YulIdentifier",
                    "src": "13260:7:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "13250:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_string_calldata_ptrt_bool",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "12655:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "12666:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "12678:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "12686:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "12694:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "12702:6:81",
                "type": ""
              }
            ],
            "src": "12592:681:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "13385:434:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "13431:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "13440:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "13443:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "13433:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "13433:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "13433:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "13406:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "13415:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "13402:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13402:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13427:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "13398:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13398:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "13395:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13456:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "13483:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "13470:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13470:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "13460:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13502:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "13512:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "13506:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "13557:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "13566:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "13569:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "13559:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "13559:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "13559:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "13545:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "13553:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "13542:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13542:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "13539:34:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13582:59:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "13613:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "13624:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "13609:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13609:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "13633:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_bytes",
                      "nodeType": "YulIdentifier",
                      "src": "13592:16:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13592:49:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "13582:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "13650:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "13683:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "13694:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "13679:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13679:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "13666:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13666:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "13654:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "13727:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "13736:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "13739:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "13729:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "13729:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "13729:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "13713:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "13723:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "13710:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13710:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "13707:36:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13752:61:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "13783:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "13794:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "13779:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13779:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "13805:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_bytes",
                      "nodeType": "YulIdentifier",
                      "src": "13762:16:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13762:51:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "13752:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_string_memory_ptrt_string_memory_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "13343:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "13354:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "13366:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "13374:6:81",
                "type": ""
              }
            ],
            "src": "13278:541:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "13961:1140:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "14007:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14016:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14019:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "14009:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14009:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "14009:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "13982:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "13991:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "13978:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13978:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "14003:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "13974:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13974:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "13971:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14032:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "14059:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "14046:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14046:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "14036:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14078:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "14088:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "14082:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "14133:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14142:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14145:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "14135:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14135:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "14135:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "14121:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "14129:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "14118:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14118:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "14115:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14158:32:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "14172:9:81"
                      },
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "14183:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "14168:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14168:22:81"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "14162:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "14238:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14247:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14250:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "14240:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14240:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "14240:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_2",
                                "nodeType": "YulIdentifier",
                                "src": "14217:2:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "14221:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "14213:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "14213:13:81"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "14228:7:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "14209:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14209:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "14202:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14202:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "14199:55:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14263:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "14286:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "14273:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14273:16:81"
                  },
                  "variables": [
                    {
                      "name": "_3",
                      "nodeType": "YulTypedName",
                      "src": "14267:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14298:14:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "14308:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_4",
                      "nodeType": "YulTypedName",
                      "src": "14302:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14321:53:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "14371:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "array_allocation_size_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "14331:39:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14331:43:81"
                  },
                  "variables": [
                    {
                      "name": "_5",
                      "nodeType": "YulTypedName",
                      "src": "14325:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14383:23:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "14403:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "14397:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14397:9:81"
                  },
                  "variables": [
                    {
                      "name": "memPtr",
                      "nodeType": "YulTypedName",
                      "src": "14387:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "14435:6:81"
                      },
                      {
                        "name": "_5",
                        "nodeType": "YulIdentifier",
                        "src": "14443:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "finalize_allocation",
                      "nodeType": "YulIdentifier",
                      "src": "14415:19:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14415:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "14415:31:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14455:17:81",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "14466:6:81"
                  },
                  "variables": [
                    {
                      "name": "dst",
                      "nodeType": "YulTypedName",
                      "src": "14459:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "14488:6:81"
                      },
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "14496:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "14481:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14481:18:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "14481:18:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "14508:22:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "14519:6:81"
                      },
                      {
                        "name": "_4",
                        "nodeType": "YulIdentifier",
                        "src": "14527:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "14515:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14515:15:81"
                  },
                  "variableNames": [
                    {
                      "name": "dst",
                      "nodeType": "YulIdentifier",
                      "src": "14508:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14539:42:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_2",
                            "nodeType": "YulIdentifier",
                            "src": "14561:2:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "14569:1:81",
                                "type": "",
                                "value": "5"
                              },
                              {
                                "name": "_3",
                                "nodeType": "YulIdentifier",
                                "src": "14572:2:81"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "14565:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "14565:10:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "14557:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14557:19:81"
                      },
                      {
                        "name": "_4",
                        "nodeType": "YulIdentifier",
                        "src": "14578:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "14553:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14553:28:81"
                  },
                  "variables": [
                    {
                      "name": "srcEnd",
                      "nodeType": "YulTypedName",
                      "src": "14543:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "14613:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14622:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "14625:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "14615:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14615:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "14615:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "14596:6:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "14604:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "14593:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14593:19:81"
                  },
                  "nodeType": "YulIf",
                  "src": "14590:39:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14638:22:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "14653:2:81"
                      },
                      {
                        "name": "_4",
                        "nodeType": "YulIdentifier",
                        "src": "14657:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "14649:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14649:11:81"
                  },
                  "variables": [
                    {
                      "name": "src",
                      "nodeType": "YulTypedName",
                      "src": "14642:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "14725:161:81",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "14739:30:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "src",
                              "nodeType": "YulIdentifier",
                              "src": "14765:3:81"
                            }
                          ],
                          "functionName": {
                            "name": "calldataload",
                            "nodeType": "YulIdentifier",
                            "src": "14752:12:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14752:17:81"
                        },
                        "variables": [
                          {
                            "name": "value",
                            "nodeType": "YulTypedName",
                            "src": "14743:5:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "value",
                              "nodeType": "YulIdentifier",
                              "src": "14807:5:81"
                            }
                          ],
                          "functionName": {
                            "name": "validator_revert_address",
                            "nodeType": "YulIdentifier",
                            "src": "14782:24:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14782:31:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "14782:31:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "14833:3:81"
                            },
                            {
                              "name": "value",
                              "nodeType": "YulIdentifier",
                              "src": "14838:5:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "14826:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14826:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "14826:18:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "14857:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "14868:3:81"
                            },
                            {
                              "name": "_4",
                              "nodeType": "YulIdentifier",
                              "src": "14873:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "14864:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14864:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "dst",
                            "nodeType": "YulIdentifier",
                            "src": "14857:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "src",
                        "nodeType": "YulIdentifier",
                        "src": "14680:3:81"
                      },
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "14685:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "14677:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14677:15:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "14693:23:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "14695:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "src",
                              "nodeType": "YulIdentifier",
                              "src": "14706:3:81"
                            },
                            {
                              "name": "_4",
                              "nodeType": "YulIdentifier",
                              "src": "14711:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "14702:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14702:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "src",
                            "nodeType": "YulIdentifier",
                            "src": "14695:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "14673:3:81",
                    "statements": []
                  },
                  "src": "14669:217:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "14895:16:81",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "14905:6:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "14895:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "14920:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "14953:9:81"
                          },
                          {
                            "name": "_4",
                            "nodeType": "YulIdentifier",
                            "src": "14964:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "14949:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "14949:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "14936:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14936:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "14924:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "14997:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15006:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15009:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "14999:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "14999:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "14999:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "14983:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "14993:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "14980:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "14980:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "14977:36:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "15022:73:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15065:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "15076:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "15061:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15061:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "15087:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "15032:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15032:63:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "15022:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "13919:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "13930:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "13942:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "13950:6:81",
                "type": ""
              }
            ],
            "src": "13824:1277:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "15275:632:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "15321:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15330:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15333:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "15323:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "15323:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "15323:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "15296:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15305:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "15292:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15292:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "15317:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "15288:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15288:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "15285:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "15346:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "15373:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "15360:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15360:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "15350:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "15392:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "15402:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "15396:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "15447:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15456:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15459:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "15449:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "15449:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "15449:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "15435:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "15443:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "15432:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15432:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "15429:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "15472:104:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15548:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "15559:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "15544:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15544:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "15568:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "15498:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15498:78:81"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nodeType": "YulTypedName",
                      "src": "15476:8:81",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "15486:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "15585:18:81",
                  "value": {
                    "name": "value0_1",
                    "nodeType": "YulIdentifier",
                    "src": "15595:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "15585:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "15612:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "15622:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "15612:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "15639:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15672:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "15683:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "15668:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15668:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "15655:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15655:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "15643:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "15716:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15725:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "15728:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "15718:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "15718:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "15718:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "15702:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "15712:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "15699:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15699:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "15696:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "15741:106:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "15817:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "15828:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "15813:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "15813:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "15839:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "15767:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "15767:80:81"
                  },
                  "variables": [
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "15745:8:81",
                      "type": ""
                    },
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "15755:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "15856:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "15866:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "15856:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "15883:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "15893:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "15883: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": "15217:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "15228:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "15240:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "15248:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "15256:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "15264:6:81",
                "type": ""
              }
            ],
            "src": "15106:801:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "16121:903:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "16167:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16176:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16179:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "16169:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "16169:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "16169:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "16142:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16151:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "16138:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16138:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "16163:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "16134:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16134:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "16131:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "16192:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "16219:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "16206:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16206:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "16196:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "16238:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "16248:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "16242:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "16293:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16302:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16305:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "16295:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "16295:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "16295:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "16281:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "16289:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "16278:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16278:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "16275:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "16318:104:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16394:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "16405:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "16390:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16390:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "16414:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "16344:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16344:78:81"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nodeType": "YulTypedName",
                      "src": "16322:8:81",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "16332:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16431:18:81",
                  "value": {
                    "name": "value0_1",
                    "nodeType": "YulIdentifier",
                    "src": "16441:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "16431:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16458:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "16468:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "16458:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "16485:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16518:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "16529:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "16514:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16514:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "16501:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16501:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "16489:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "16562:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16571:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16574:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "16564:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "16564:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "16564:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "16548:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "16558:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "16545:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16545:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "16542:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "16587:106:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16663:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "16674:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "16659:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16659:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "16685:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "16613:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16613:80:81"
                  },
                  "variables": [
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "16591:8:81",
                      "type": ""
                    },
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "16601:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16702:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "16712:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "16702:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16729:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "16739:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "16729:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "16756:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16789:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "16800:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "16785:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16785:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "16772:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16772:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_2",
                      "nodeType": "YulTypedName",
                      "src": "16760:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "16833:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16842:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "16845:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "16835:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "16835:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "16835:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_2",
                        "nodeType": "YulIdentifier",
                        "src": "16819:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "16829:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "16816:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16816:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "16813:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "16858:106:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "16934:9:81"
                          },
                          {
                            "name": "offset_2",
                            "nodeType": "YulIdentifier",
                            "src": "16945:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "16930:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "16930:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "16956:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "16884:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "16884:80:81"
                  },
                  "variables": [
                    {
                      "name": "value4_1",
                      "nodeType": "YulTypedName",
                      "src": "16862:8:81",
                      "type": ""
                    },
                    {
                      "name": "value5_1",
                      "nodeType": "YulTypedName",
                      "src": "16872:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "16973:18:81",
                  "value": {
                    "name": "value4_1",
                    "nodeType": "YulIdentifier",
                    "src": "16983:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nodeType": "YulIdentifier",
                      "src": "16973:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "17000:18:81",
                  "value": {
                    "name": "value5_1",
                    "nodeType": "YulIdentifier",
                    "src": "17010:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value5",
                      "nodeType": "YulIdentifier",
                      "src": "17000:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "16047:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "16058:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "16070:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "16078:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "16086:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "16094:6:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "16102:6:81",
                "type": ""
              },
              {
                "name": "value5",
                "nodeType": "YulTypedName",
                "src": "16110:6:81",
                "type": ""
              }
            ],
            "src": "15912:1112:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "17133:436:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "17179:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "17188:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "17191:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "17181:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "17181:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "17181:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "17154:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "17163:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "17150:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "17150:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "17175:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "17146:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17146:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "17143:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "17204:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "17231:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "17218:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17218:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "17208:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "17284:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "17293:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "17296:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "17286:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "17286:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "17286:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "17256:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "17264:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "17253:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17253:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "17250:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "17309:85:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "17366:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "17377:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "17362:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "17362:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "17386:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_string_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "17335:26:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17335:59:81"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nodeType": "YulTypedName",
                      "src": "17313:8:81",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "17323:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "17403:18:81",
                  "value": {
                    "name": "value0_1",
                    "nodeType": "YulIdentifier",
                    "src": "17413:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "17403:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "17430:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "17440:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "17430:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "17457:45:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "17487:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "17498:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "17483:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "17483:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "17470:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17470:32:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "17461:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "17533:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bool",
                      "nodeType": "YulIdentifier",
                      "src": "17511:21:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17511:28:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "17511:28:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "17548:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "17558:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "17548:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_string_calldata_ptrt_bool",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "17083:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "17094:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "17106:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "17114:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "17122:6:81",
                "type": ""
              }
            ],
            "src": "17029:540:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "17795:903:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "17841:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "17850:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "17853:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "17843:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "17843:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "17843:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "17816:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "17825:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "17812:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "17812:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "17837:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "17808:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17808:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "17805:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "17866:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "17893:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "17880:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17880:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "17870:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "17912:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "17922:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "17916:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "17967:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "17976:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "17979:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "17969:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "17969:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "17969:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "17955:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "17963:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "17952:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "17952:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "17949:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "17992:104:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18068:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "18079:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18064:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18064:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "18088:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "18018:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18018:78:81"
                  },
                  "variables": [
                    {
                      "name": "value0_1",
                      "nodeType": "YulTypedName",
                      "src": "17996:8:81",
                      "type": ""
                    },
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "18006:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "18105:18:81",
                  "value": {
                    "name": "value0_1",
                    "nodeType": "YulIdentifier",
                    "src": "18115:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "18105:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "18132:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "18142:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "18132:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "18159:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18192:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "18203:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18188:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18188:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "18175:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18175:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "18163:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "18236:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "18245:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "18248:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "18238:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "18238:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "18238:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "18222:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "18232:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "18219:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18219:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "18216:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "18261:106:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18337:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "18348:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18333:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18333:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "18359:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "18287:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18287:80:81"
                  },
                  "variables": [
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "18265:8:81",
                      "type": ""
                    },
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "18275:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "18376:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "18386:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "18376:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "18403:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "18413:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "18403:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "18430:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18463:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "18474:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18459:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18459:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "18446:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18446:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_2",
                      "nodeType": "YulTypedName",
                      "src": "18434:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "18507:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "18516:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "18519:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "18509:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "18509:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "18509:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_2",
                        "nodeType": "YulIdentifier",
                        "src": "18493:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "18503:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "18490:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18490:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "18487:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "18532:106:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18608:9:81"
                          },
                          {
                            "name": "offset_2",
                            "nodeType": "YulIdentifier",
                            "src": "18619:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18604:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18604:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "18630:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "18558:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18558:80:81"
                  },
                  "variables": [
                    {
                      "name": "value4_1",
                      "nodeType": "YulTypedName",
                      "src": "18536:8:81",
                      "type": ""
                    },
                    {
                      "name": "value5_1",
                      "nodeType": "YulTypedName",
                      "src": "18546:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "18647:18:81",
                  "value": {
                    "name": "value4_1",
                    "nodeType": "YulIdentifier",
                    "src": "18657:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nodeType": "YulIdentifier",
                      "src": "18647:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "18674:18:81",
                  "value": {
                    "name": "value5_1",
                    "nodeType": "YulIdentifier",
                    "src": "18684:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value5",
                      "nodeType": "YulIdentifier",
                      "src": "18674:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "17721:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "17732:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "17744:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "17752:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "17760:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "17768:6:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "17776:6:81",
                "type": ""
              },
              {
                "name": "value5",
                "nodeType": "YulTypedName",
                "src": "17784:6:81",
                "type": ""
              }
            ],
            "src": "17574:1124:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "18787:298:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "18833:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "18842:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "18845:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "18835:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "18835:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "18835:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "18808:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18817:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "18804:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18804:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "18829:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "18800:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18800:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "18797:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "18858:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "18884:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "18871:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18871:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "18862:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "18928:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "18903:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18903:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "18903:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "18943:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "18953:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "18943:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "18967:47:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "18999:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "19010:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "18995:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "18995:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "18982:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "18982:32:81"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nodeType": "YulTypedName",
                      "src": "18971:7:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nodeType": "YulIdentifier",
                        "src": "19045:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bool",
                      "nodeType": "YulIdentifier",
                      "src": "19023:21:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19023:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "19023:30:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "19062:17:81",
                  "value": {
                    "name": "value_1",
                    "nodeType": "YulIdentifier",
                    "src": "19072:7:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "19062:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_bool",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "18745:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "18756:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "18768:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "18776:6:81",
                "type": ""
              }
            ],
            "src": "18703:382:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "19157:174:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "19203:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19212:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19215:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "19205:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "19205:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "19205:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "19178:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "19187:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "19174:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19174:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19199:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "19170:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19170:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "19167:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "19228:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "19254:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "19241:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19241:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "19232:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "19295:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bool",
                      "nodeType": "YulIdentifier",
                      "src": "19273:21:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19273:28:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "19273:28:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "19310:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "19320:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "19310:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bool",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "19123:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "19134:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "19146:6:81",
                "type": ""
              }
            ],
            "src": "19090:241:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "19518:750:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "19564:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19573:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19576:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "19566:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "19566:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "19566:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "19539:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "19548:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "19535:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19535:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "19560:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "19531:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19531:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "19528:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "19589:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "19615:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "19602:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19602:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "19593:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "19659:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "19634:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19634:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "19634:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "19674:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "19684:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "19674:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "19698:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "19729:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "19740:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "19725:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19725:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "19712:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19712:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "19702:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "19753:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "19763:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "19757:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "19808:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19817:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "19820:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "19810:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "19810:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "19810:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "19796:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "19804:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "19793:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19793:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "19790:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "19833:104:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "19909:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "19920:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "19905:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "19905:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "19929:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "19859:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "19859:78:81"
                  },
                  "variables": [
                    {
                      "name": "value1_1",
                      "nodeType": "YulTypedName",
                      "src": "19837:8:81",
                      "type": ""
                    },
                    {
                      "name": "value2_1",
                      "nodeType": "YulTypedName",
                      "src": "19847:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "19946:18:81",
                  "value": {
                    "name": "value1_1",
                    "nodeType": "YulIdentifier",
                    "src": "19956:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "19946:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "19973:18:81",
                  "value": {
                    "name": "value2_1",
                    "nodeType": "YulIdentifier",
                    "src": "19983:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "19973:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "20000:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20033:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "20044:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20029:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20029:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "20016:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20016:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "20004:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "20077:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "20086:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "20089:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "20079:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "20079:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "20079:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "20063:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "20073:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "20060:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20060:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "20057:36:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "20102:106:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20178:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "20189:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20174:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20174:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "20200:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_address_payable_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "20128:45:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20128:80:81"
                  },
                  "variables": [
                    {
                      "name": "value3_1",
                      "nodeType": "YulTypedName",
                      "src": "20106:8:81",
                      "type": ""
                    },
                    {
                      "name": "value4_1",
                      "nodeType": "YulTypedName",
                      "src": "20116:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "20217:18:81",
                  "value": {
                    "name": "value3_1",
                    "nodeType": "YulIdentifier",
                    "src": "20227:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "20217:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "20244:18:81",
                  "value": {
                    "name": "value4_1",
                    "nodeType": "YulIdentifier",
                    "src": "20254:8:81"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nodeType": "YulIdentifier",
                      "src": "20244: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": "19452:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "19463:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "19475:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "19483:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "19491:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "19499:6:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "19507:6:81",
                "type": ""
              }
            ],
            "src": "19336:932:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "20440:110:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "20457:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20468:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20450:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20450:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20450:21:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "20480:64:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "20517:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20529:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "20540:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20525:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20525:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_address_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "20488:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20488:56:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "20480: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": "20409:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "20420:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "20431:4:81",
                "type": ""
              }
            ],
            "src": "20273:277:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "20800:236:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "20817:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "20828:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20810:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20810:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20810:21:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "20840:70:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "20883:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20895:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "20906:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20891:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20891:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_address_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "20854:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20854:56:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "20844:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20930:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "20941:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "20926:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20926:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_1",
                            "nodeType": "YulIdentifier",
                            "src": "20950:6:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "20958:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "20946:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "20946:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "20919:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20919:50:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "20919:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "20978:52:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "21015:6:81"
                      },
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "21023:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "20986:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "20986:44:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "20978: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": "20761:9:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "20772:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "20780:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "20791:4:81",
                "type": ""
              }
            ],
            "src": "20555:481:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "21128:301:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "21174:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "21183:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "21186:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "21176:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "21176:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "21176:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "21149:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21158:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "21145:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21145:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "21170:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "21141:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21141:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "21138:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "21199:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "21225:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "21212:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21212:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "21203:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "21269:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "21244:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21244:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21244:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "21284:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "21294:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "21284:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "21308:47:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21340:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "21351:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "21336:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21336:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "21323:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21323:32:81"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nodeType": "YulTypedName",
                      "src": "21312:7:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nodeType": "YulIdentifier",
                        "src": "21389:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "21364:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21364:33:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21364:33:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "21406:17:81",
                  "value": {
                    "name": "value_1",
                    "nodeType": "YulIdentifier",
                    "src": "21416:7:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "21406:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "21086:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "21097:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "21109:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "21117:6:81",
                "type": ""
              }
            ],
            "src": "21041:388:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "21581:587:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "21628:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "21637:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "21640:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "21630:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "21630:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "21630:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "21602:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21611:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "21598:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21598:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "21623:3:81",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "21594:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21594:33:81"
                  },
                  "nodeType": "YulIf",
                  "src": "21591:53:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "21653:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "21679:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "21666:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21666:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "21657:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "21723:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "21698:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21698:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21698:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "21738:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "21748:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "21738:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "21762:47:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21794:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "21805:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "21790:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21790:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "21777:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21777:32:81"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nodeType": "YulTypedName",
                      "src": "21766:7:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nodeType": "YulIdentifier",
                        "src": "21843:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "21818:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21818:33:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "21818:33:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "21860:17:81",
                  "value": {
                    "name": "value_1",
                    "nodeType": "YulIdentifier",
                    "src": "21870:7:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "21860:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "21886:42:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21913:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "21924:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "21909:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21909:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "21896:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21896:32:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "21886:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "21937:42:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "21964:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "21975:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "21960:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "21960:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "21947:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "21947:32:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "21937:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "21988:47:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "22019:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "22030:3:81",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "22015:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "22015:19:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "22002:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22002:33:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "21992:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "22078:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "22087:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "22090:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "22080:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "22080:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "22080:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "22050:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22058:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "22047:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22047:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "22044:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "22103:59:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "22134:9:81"
                          },
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "22145:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "22130:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "22130:22:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "22154:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_bytes",
                      "nodeType": "YulIdentifier",
                      "src": "22113:16:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22113:49:81"
                  },
                  "variableNames": [
                    {
                      "name": "value4",
                      "nodeType": "YulIdentifier",
                      "src": "22103:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "21515:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "21526:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "21538:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "21546:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "21554:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "21562:6:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "21570:6:81",
                "type": ""
              }
            ],
            "src": "21434:734:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "22347:232:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "22364:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22375:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "22357:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22357:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22357:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "22398:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "22409:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "22394:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "22394:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22414:2:81",
                        "type": "",
                        "value": "42"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "22387:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22387:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22387:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "22437:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "22448:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "22433:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "22433:18:81"
                      },
                      {
                        "hexValue": "455243313135353a2061646472657373207a65726f206973206e6f7420612076",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "22453:34:81",
                        "type": "",
                        "value": "ERC1155: address zero is not a v"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "22426:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22426:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22426:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "22508:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "22519:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "22504:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "22504:18:81"
                      },
                      {
                        "hexValue": "616c6964206f776e6572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "22524:12:81",
                        "type": "",
                        "value": "alid owner"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "22497:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22497:40:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22497:40:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "22546:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "22558:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22569:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "22554:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22554:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "22546:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_415a1b99e1fd4a18cf87c08995f5a9130182e8d76e9c17c497bfebaaef9265ad__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "22324:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "22338:4:81",
                "type": ""
              }
            ],
            "src": "22173:406:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "22758:226:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "22775:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22786:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "22768:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22768:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22768:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "22809:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "22820:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "22805:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "22805:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22825:2:81",
                        "type": "",
                        "value": "36"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "22798:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22798:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22798:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "22848:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "22859:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "22844:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "22844:18:81"
                      },
                      {
                        "hexValue": "41646d696e436f6e74726f6c3a204d757374206265206f776e6572206f722061",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "22864:34:81",
                        "type": "",
                        "value": "AdminControl: Must be owner or a"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "22837:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22837:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22837:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "22919:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "22930:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "22915:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "22915:18:81"
                      },
                      {
                        "hexValue": "646d696e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "22935:6:81",
                        "type": "",
                        "value": "dmin"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "22908:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22908:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "22908:34:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "22951:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "22963:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "22974:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "22959:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "22959:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "22951:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_ca6fc84f9a44d1110756284e5c56ff72cff80e2de6c9cfbe8379a88afa111687__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "22735:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "22749:4:81",
                "type": ""
              }
            ],
            "src": "22584:400:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "23044:325:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "23054:22:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23068:1:81",
                        "type": "",
                        "value": "1"
                      },
                      {
                        "name": "data",
                        "nodeType": "YulIdentifier",
                        "src": "23071:4:81"
                      }
                    ],
                    "functionName": {
                      "name": "shr",
                      "nodeType": "YulIdentifier",
                      "src": "23064:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23064:12:81"
                  },
                  "variableNames": [
                    {
                      "name": "length",
                      "nodeType": "YulIdentifier",
                      "src": "23054:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "23085:38:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "data",
                        "nodeType": "YulIdentifier",
                        "src": "23115:4:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23121:1:81",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "and",
                      "nodeType": "YulIdentifier",
                      "src": "23111:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23111:12:81"
                  },
                  "variables": [
                    {
                      "name": "outOfPlaceEncoding",
                      "nodeType": "YulTypedName",
                      "src": "23089:18:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "23162:31:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "23164:27:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "length",
                              "nodeType": "YulIdentifier",
                              "src": "23178:6:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "23186:4:81",
                              "type": "",
                              "value": "0x7f"
                            }
                          ],
                          "functionName": {
                            "name": "and",
                            "nodeType": "YulIdentifier",
                            "src": "23174:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "23174:17:81"
                        },
                        "variableNames": [
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "23164:6:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "outOfPlaceEncoding",
                        "nodeType": "YulIdentifier",
                        "src": "23142:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "23135:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23135:26:81"
                  },
                  "nodeType": "YulIf",
                  "src": "23132:61:81"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "23252:111:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "23273:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "23280:3:81",
                                  "type": "",
                                  "value": "224"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "23285:10:81",
                                  "type": "",
                                  "value": "0x4e487b71"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nodeType": "YulIdentifier",
                                "src": "23276:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "23276:20:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "23266:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "23266:31:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "23266:31:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "23317:1:81",
                              "type": "",
                              "value": "4"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "23320:4:81",
                              "type": "",
                              "value": "0x22"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "23310:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "23310:15:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "23310:15:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "23345:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "23348:4:81",
                              "type": "",
                              "value": "0x24"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "23338:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "23338:15:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "23338:15:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "outOfPlaceEncoding",
                        "nodeType": "YulIdentifier",
                        "src": "23208:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "23231:6:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "23239:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nodeType": "YulIdentifier",
                          "src": "23228:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "23228:14:81"
                      }
                    ],
                    "functionName": {
                      "name": "eq",
                      "nodeType": "YulIdentifier",
                      "src": "23205:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23205:38:81"
                  },
                  "nodeType": "YulIf",
                  "src": "23202:161:81"
                }
              ]
            },
            "name": "extract_byte_array_length",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "data",
                "nodeType": "YulTypedName",
                "src": "23024:4:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "23033:6:81",
                "type": ""
              }
            ],
            "src": "22989:380:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "23548:172:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "23565:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23576:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "23558:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23558:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23558:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "23599:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "23610:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "23595:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "23595:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23615:2:81",
                        "type": "",
                        "value": "22"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "23588:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23588:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23588:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "23638:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "23649:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "23634:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "23634:18:81"
                      },
                      {
                        "hexValue": "4e6f20657874656e73696f6e20666f7220746f6b656e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "23654:24:81",
                        "type": "",
                        "value": "No extension for token"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "23627:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23627:52:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23627:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "23688:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "23700:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23711:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "23696:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23696:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "23688:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_9af8056f7bbf995e43fff5dc3ca8e50b237f8938603e7ec81cea349a49fd0fcd__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "23525:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "23539:4:81",
                "type": ""
              }
            ],
            "src": "23374:346:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "23899:171:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "23916:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23927:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "23909:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23909:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23909:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "23950:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "23961:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "23946:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "23946:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "23966:2:81",
                        "type": "",
                        "value": "21"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "23939:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23939:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23939:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "23989:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24000:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "23985:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "23985:18:81"
                      },
                      {
                        "hexValue": "457874656e73696f6e20626c61636b6c6973746564",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "24005:23:81",
                        "type": "",
                        "value": "Extension blacklisted"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "23978:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "23978:51:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "23978:51:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "24038:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "24050:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24061:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "24046:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24046:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "24038:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_4beb819a81c47e20a26775f9ad72b3da5e765415ddadbc3186b244e4bc01e621__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "23876:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "23890:4:81",
                "type": ""
              }
            ],
            "src": "23725:345:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "24249:236:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "24266:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24277:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24259:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24259:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24259:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "24300:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24311:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "24296:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24296:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24316:2:81",
                        "type": "",
                        "value": "46"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24289:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24289:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24289:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "24339:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24350:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "24335:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24335:18:81"
                      },
                      {
                        "hexValue": "455243313135353a2063616c6c6572206973206e6f7420746f6b656e206f776e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "24355:34:81",
                        "type": "",
                        "value": "ERC1155: caller is not token own"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24328:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24328:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24328:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "24410:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24421:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "24406:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24406:18:81"
                      },
                      {
                        "hexValue": "6572206f7220617070726f766564",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "24426:16:81",
                        "type": "",
                        "value": "er or approved"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24399:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24399:44:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24399:44:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "24452:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "24464:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24475:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "24460:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24460:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "24452:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_47c72b42072ed6c647dec3a0a5c88bec44d3e901c64659bff94ecce0a0323156__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "24226:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "24240:4:81",
                "type": ""
              }
            ],
            "src": "24075:410:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "24522:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24539:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24546:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24551:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "24542:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24542:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24532:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24532:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24532:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24579:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24582:4:81",
                        "type": "",
                        "value": "0x32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24572:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24572:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24572:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24603:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24606:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "24596:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24596:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24596:15:81"
                }
              ]
            },
            "name": "panic_error_0x32",
            "nodeType": "YulFunctionDefinition",
            "src": "24490:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "24654:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24671:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24678:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24683:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "24674:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24674:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24664:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24664:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24664:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24711:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24714:4:81",
                        "type": "",
                        "value": "0x11"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "24704:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24704:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24704:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24735:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24738:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "24728:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24728:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "24728:15:81"
                }
              ]
            },
            "name": "panic_error_0x11",
            "nodeType": "YulFunctionDefinition",
            "src": "24622:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "24801:88:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "24832:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "24834:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "24834:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "24834:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "24817:5:81"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "24828:1:81",
                            "type": "",
                            "value": "0"
                          }
                        ],
                        "functionName": {
                          "name": "not",
                          "nodeType": "YulIdentifier",
                          "src": "24824:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "24824:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "eq",
                      "nodeType": "YulIdentifier",
                      "src": "24814:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24814:17:81"
                  },
                  "nodeType": "YulIf",
                  "src": "24811:43:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "24863:20:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "24874:5:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "24881:1:81",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "24870:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "24870:13:81"
                  },
                  "variableNames": [
                    {
                      "name": "ret",
                      "nodeType": "YulIdentifier",
                      "src": "24863:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "increment_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "24783:5:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "ret",
                "nodeType": "YulTypedName",
                "src": "24793:3:81",
                "type": ""
              }
            ],
            "src": "24754:135:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "25068:181:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "25085:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25096:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25078:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25078:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25078:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "25119:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "25130:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "25115:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25115:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25135:2:81",
                        "type": "",
                        "value": "31"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25108:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25108:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25108:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "25158:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "25169:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "25154:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25154:18:81"
                      },
                      {
                        "hexValue": "43616c6c6572206973206e6f74206f776e6572206f7220617070726f766564",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "25174:33:81",
                        "type": "",
                        "value": "Caller is not owner or approved"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25147:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25147:61:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25147:61:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "25217:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "25229:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25240:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "25225:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25225:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "25217:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_603f4022c7c9bca46ef8304cd6a88dd2e6d49898b43e3a9ed7aea6d1839c2f9e__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "25045:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "25059:4:81",
                "type": ""
              }
            ],
            "src": "24894:355:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "25428:163:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "25445:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25456:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25438:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25438:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25438:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "25479:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "25490:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "25475:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25475:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25495:2:81",
                        "type": "",
                        "value": "13"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25468:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25468:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25468:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "25518:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "25529:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "25514:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25514:18:81"
                      },
                      {
                        "hexValue": "496e76616c696420696e707574",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "25534:15:81",
                        "type": "",
                        "value": "Invalid input"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25507:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25507:43:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25507:43:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "25559:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "25571:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25582:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "25567:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25567:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "25559:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "25405:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "25419:4:81",
                "type": ""
              }
            ],
            "src": "25254:337:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "25770:236:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "25787:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25798:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25780:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25780:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25780:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "25821:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "25832:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "25817:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25817:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25837:2:81",
                        "type": "",
                        "value": "46"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25810:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25810:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25810:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "25860:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "25871:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "25856:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25856:18:81"
                      },
                      {
                        "hexValue": "496e697469616c697a61626c653a20636f6e747261637420697320616c726561",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "25876:34:81",
                        "type": "",
                        "value": "Initializable: contract is alrea"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25849:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25849:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25849:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "25931:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "25942:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "25927:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "25927:18:81"
                      },
                      {
                        "hexValue": "647920696e697469616c697a6564",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "25947:16:81",
                        "type": "",
                        "value": "dy initialized"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "25920:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25920:44:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "25920:44:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "25973:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "25985:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "25996:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "25981:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "25981:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "25973:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_7a2a4e26842155ea933fe6eb6e3137eb5a296dcdf55721c552be7b4c3cc23759__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "25747:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "25761:4:81",
                "type": ""
              }
            ],
            "src": "25596:410:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "26118:87:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "26128:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "26140:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26151:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "26136:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26136:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "26128:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "26170:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "26185:6:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "26193:4:81",
                            "type": "",
                            "value": "0xff"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "26181:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "26181:17:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "26163:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26163:36:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26163:36:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_rational_1_by_1__to_t_uint8__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "26087:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "26098:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "26109:4:81",
                "type": ""
              }
            ],
            "src": "26011:194:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "26384:231:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "26401:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26412:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "26394:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26394:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26394:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "26435:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "26446:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "26431:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "26431:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26451:2:81",
                        "type": "",
                        "value": "41"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "26424:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26424:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26424:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "26474:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "26485:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "26470:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "26470:18:81"
                      },
                      {
                        "hexValue": "455243313135353a206163636f756e747320616e6420696473206c656e677468",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "26490:34:81",
                        "type": "",
                        "value": "ERC1155: accounts and ids length"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "26463:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26463:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26463:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "26545:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "26556:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "26541:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "26541:18:81"
                      },
                      {
                        "hexValue": "206d69736d61746368",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "26561:11:81",
                        "type": "",
                        "value": " mismatch"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "26534:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26534:39:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "26534:39:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "26582:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "26594:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26605:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "26590:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26590:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "26582:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "26361:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "26375:4:81",
                "type": ""
              }
            ],
            "src": "26210:405:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "26715:427:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "26725:51:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "ptr_to_tail",
                        "nodeType": "YulIdentifier",
                        "src": "26764:11:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "26751:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26751:25:81"
                  },
                  "variables": [
                    {
                      "name": "rel_offset_of_tail",
                      "nodeType": "YulTypedName",
                      "src": "26729:18:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "26865:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "26874:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "26877:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "26867:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "26867:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "26867:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "rel_offset_of_tail",
                            "nodeType": "YulIdentifier",
                            "src": "26799:18:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "arguments": [],
                                    "functionName": {
                                      "name": "calldatasize",
                                      "nodeType": "YulIdentifier",
                                      "src": "26827:12:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "26827:14:81"
                                  },
                                  {
                                    "name": "base_ref",
                                    "nodeType": "YulIdentifier",
                                    "src": "26843:8:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "sub",
                                  "nodeType": "YulIdentifier",
                                  "src": "26823:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "26823:29:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "26858:2:81",
                                    "type": "",
                                    "value": "30"
                                  }
                                ],
                                "functionName": {
                                  "name": "not",
                                  "nodeType": "YulIdentifier",
                                  "src": "26854:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "26854:7:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "26819:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "26819:43:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "26795:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "26795:68:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "26788:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26788:76:81"
                  },
                  "nodeType": "YulIf",
                  "src": "26785:96:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "26890:47:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "base_ref",
                        "nodeType": "YulIdentifier",
                        "src": "26908:8:81"
                      },
                      {
                        "name": "rel_offset_of_tail",
                        "nodeType": "YulIdentifier",
                        "src": "26918:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "26904:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26904:33:81"
                  },
                  "variables": [
                    {
                      "name": "addr_1",
                      "nodeType": "YulTypedName",
                      "src": "26894:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "26946:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "addr_1",
                        "nodeType": "YulIdentifier",
                        "src": "26969:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "26956:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26956:20:81"
                  },
                  "variableNames": [
                    {
                      "name": "length",
                      "nodeType": "YulIdentifier",
                      "src": "26946:6:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "27019:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "27028:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "27031:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "27021:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "27021:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "27021:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "26991:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "26999:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "26988:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "26988:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "26985:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "27044:25:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "addr_1",
                        "nodeType": "YulIdentifier",
                        "src": "27056:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "27064:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "27052:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27052:17:81"
                  },
                  "variableNames": [
                    {
                      "name": "addr",
                      "nodeType": "YulIdentifier",
                      "src": "27044:4:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "27120:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "27129:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "27132:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "27122:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "27122:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "27122:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "addr",
                        "nodeType": "YulIdentifier",
                        "src": "27085:4:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [],
                            "functionName": {
                              "name": "calldatasize",
                              "nodeType": "YulIdentifier",
                              "src": "27095:12:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "27095:14:81"
                          },
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "27111:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "27091:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "27091:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "sgt",
                      "nodeType": "YulIdentifier",
                      "src": "27081:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27081:38:81"
                  },
                  "nodeType": "YulIf",
                  "src": "27078:58:81"
                }
              ]
            },
            "name": "access_calldata_tail_t_string_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "base_ref",
                "nodeType": "YulTypedName",
                "src": "26672:8:81",
                "type": ""
              },
              {
                "name": "ptr_to_tail",
                "nodeType": "YulTypedName",
                "src": "26682:11:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "addr",
                "nodeType": "YulTypedName",
                "src": "26698:4:81",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "26704:6:81",
                "type": ""
              }
            ],
            "src": "26620:522:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "27321:163:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "27338:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "27349:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "27331:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27331:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "27331:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "27372:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "27383:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "27368:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "27368:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "27388:2:81",
                        "type": "",
                        "value": "13"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "27361:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27361:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "27361:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "27411:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "27422:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "27407:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "27407:18:81"
                      },
                      {
                        "hexValue": "496e76616c696420746f6b656e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "27427:15:81",
                        "type": "",
                        "value": "Invalid token"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "27400:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27400:43:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "27400:43:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "27452:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "27464:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "27475:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "27460:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27460:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "27452:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_5e70ebd1d4072d337a7fabaa7bda70fa2633d6e3f89d5cb725a16b10d07e54c6__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "27298:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "27312:4:81",
                "type": ""
              }
            ],
            "src": "27147:337:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "27663:176:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "27680:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "27691:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "27673:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27673:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "27673:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "27714:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "27725:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "27710:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "27710:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "27730:2:81",
                        "type": "",
                        "value": "26"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "27703:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27703:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "27703:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "27753:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "27764:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "27749:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "27749:18:81"
                      },
                      {
                        "hexValue": "546f6b656e206372656174656420627920657874656e73696f6e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "27769:28:81",
                        "type": "",
                        "value": "Token created by extension"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "27742:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27742:56:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "27742:56:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "27807:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "27819:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "27830:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "27815:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "27815:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "27807:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_dc957dacd2461b3477c266babc54966f3d592be89b3105889f0576b7147ce9bb__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "27640:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "27654:4:81",
                "type": ""
              }
            ],
            "src": "27489:350:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "28018:225:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "28035:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "28046:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "28028:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28028:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "28028:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "28069:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "28080:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "28065:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "28065:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "28085:2:81",
                        "type": "",
                        "value": "35"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "28058:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28058:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "28058:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "28108:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "28119:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "28104:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "28104:18:81"
                      },
                      {
                        "hexValue": "546f6b656e206e6f742063726561746564206279207468697320657874656e73",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "28124:34:81",
                        "type": "",
                        "value": "Token not created by this extens"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "28097:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28097:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "28097:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "28179:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "28190:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "28175:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "28175:18:81"
                      },
                      {
                        "hexValue": "696f6e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "28195:5:81",
                        "type": "",
                        "value": "ion"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "28168:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28168:33:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "28168:33:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "28210:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "28222:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "28233:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "28218:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28218:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "28210:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_3544294527bbdb8eb31f7a9e1779b327bcda38b16dd495ae2505691136d011a2__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "27995:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "28009:4:81",
                "type": ""
              }
            ],
            "src": "27844:399:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "28422:228:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "28439:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "28450:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "28432:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28432:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "28432:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "28473:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "28484:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "28469:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "28469:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "28489:2:81",
                        "type": "",
                        "value": "38"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "28462:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28462:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "28462:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "28512:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "28523:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "28508:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "28508:18:81"
                      },
                      {
                        "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "28528:34:81",
                        "type": "",
                        "value": "Ownable: new owner is the zero a"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "28501:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28501:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "28501:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "28583:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "28594:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "28579:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "28579:18:81"
                      },
                      {
                        "hexValue": "646472657373",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "28599:8:81",
                        "type": "",
                        "value": "ddress"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "28572:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28572:36:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "28572:36:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "28617:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "28629:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "28640:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "28625:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28625:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "28617:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "28399:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "28413:4:81",
                "type": ""
              }
            ],
            "src": "28248:402:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "28829:175:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "28846:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "28857:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "28839:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28839:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "28839:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "28880:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "28891:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "28876:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "28876:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "28896:2:81",
                        "type": "",
                        "value": "25"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "28869:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28869:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "28869:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "28919:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "28930:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "28915:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "28915:18:81"
                      },
                      {
                        "hexValue": "43616e6e6f7420626c61636b6c69737420796f757273656c66",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "28935:27:81",
                        "type": "",
                        "value": "Cannot blacklist yourself"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "28908:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28908:55:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "28908:55:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "28972:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "28984:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "28995:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "28980:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "28980:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "28972:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_0cc452069841e70d1cdcec58868ea025555fa12c1e760cb45ef052b3f01f1f1e__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "28806:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "28820:4:81",
                "type": ""
              }
            ],
            "src": "28655:349:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "29065:65:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "29082:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "name": "ptr",
                        "nodeType": "YulIdentifier",
                        "src": "29085:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "29075:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29075:14:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "29075:14:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "29098:26:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "29116:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "29119:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "keccak256",
                      "nodeType": "YulIdentifier",
                      "src": "29106:9:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29106:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "data",
                      "nodeType": "YulIdentifier",
                      "src": "29098:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "array_dataslot_string_storage",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "ptr",
                "nodeType": "YulTypedName",
                "src": "29048:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "data",
                "nodeType": "YulTypedName",
                "src": "29056:4:81",
                "type": ""
              }
            ],
            "src": "29009:121:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "29193:664:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "29203:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "29226:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "sload",
                      "nodeType": "YulIdentifier",
                      "src": "29220:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29220:12:81"
                  },
                  "variables": [
                    {
                      "name": "slotValue",
                      "nodeType": "YulTypedName",
                      "src": "29207:9:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "29241:50:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "slotValue",
                        "nodeType": "YulIdentifier",
                        "src": "29281:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "extract_byte_array_length",
                      "nodeType": "YulIdentifier",
                      "src": "29255:25:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29255:36:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "29245:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "29300:11:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "29310:1:81",
                    "type": "",
                    "value": "1"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "29304:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "cases": [
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "29361:126:81",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "name": "pos",
                                  "nodeType": "YulIdentifier",
                                  "src": "29382:3:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "slotValue",
                                      "nodeType": "YulIdentifier",
                                      "src": "29391:9:81"
                                    },
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "29406:3:81",
                                          "type": "",
                                          "value": "255"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "not",
                                        "nodeType": "YulIdentifier",
                                        "src": "29402:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "29402:8:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "and",
                                    "nodeType": "YulIdentifier",
                                    "src": "29387:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "29387:24:81"
                                }
                              ],
                              "functionName": {
                                "name": "mstore",
                                "nodeType": "YulIdentifier",
                                "src": "29375:6:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "29375:37:81"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "29375:37:81"
                          },
                          {
                            "nodeType": "YulAssignment",
                            "src": "29425:52:81",
                            "value": {
                              "arguments": [
                                {
                                  "name": "pos",
                                  "nodeType": "YulIdentifier",
                                  "src": "29436:3:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "length",
                                      "nodeType": "YulIdentifier",
                                      "src": "29445:6:81"
                                    },
                                    {
                                      "arguments": [
                                        {
                                          "arguments": [
                                            {
                                              "name": "length",
                                              "nodeType": "YulIdentifier",
                                              "src": "29467:6:81"
                                            }
                                          ],
                                          "functionName": {
                                            "name": "iszero",
                                            "nodeType": "YulIdentifier",
                                            "src": "29460:6:81"
                                          },
                                          "nodeType": "YulFunctionCall",
                                          "src": "29460:14:81"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "iszero",
                                        "nodeType": "YulIdentifier",
                                        "src": "29453:6:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "29453:22:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "mul",
                                    "nodeType": "YulIdentifier",
                                    "src": "29441:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "29441:35:81"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "29432:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "29432:45:81"
                            },
                            "variableNames": [
                              {
                                "name": "ret",
                                "nodeType": "YulIdentifier",
                                "src": "29425:3:81"
                              }
                            ]
                          }
                        ]
                      },
                      "nodeType": "YulCase",
                      "src": "29354:133:81",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "29359:1:81",
                        "type": "",
                        "value": "0"
                      }
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "29503:348:81",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "29524:1:81",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "name": "value",
                                  "nodeType": "YulIdentifier",
                                  "src": "29527:5:81"
                                }
                              ],
                              "functionName": {
                                "name": "mstore",
                                "nodeType": "YulIdentifier",
                                "src": "29517:6:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "29517:16:81"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "29517:16:81"
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "29546:14:81",
                            "value": {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "29556:4:81",
                              "type": "",
                              "value": "0x20"
                            },
                            "variables": [
                              {
                                "name": "_2",
                                "nodeType": "YulTypedName",
                                "src": "29550:2:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "29573:31:81",
                            "value": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "29598:1:81",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "name": "_2",
                                  "nodeType": "YulIdentifier",
                                  "src": "29601:2:81"
                                }
                              ],
                              "functionName": {
                                "name": "keccak256",
                                "nodeType": "YulIdentifier",
                                "src": "29588:9:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "29588:16:81"
                            },
                            "variables": [
                              {
                                "name": "dataPos",
                                "nodeType": "YulTypedName",
                                "src": "29577:7:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "29617:10:81",
                            "value": {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "29626:1:81",
                              "type": "",
                              "value": "0"
                            },
                            "variables": [
                              {
                                "name": "i",
                                "nodeType": "YulTypedName",
                                "src": "29621:1:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "29694:111:81",
                              "statements": [
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "name": "pos",
                                            "nodeType": "YulIdentifier",
                                            "src": "29723:3:81"
                                          },
                                          {
                                            "name": "i",
                                            "nodeType": "YulIdentifier",
                                            "src": "29728:1:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "add",
                                          "nodeType": "YulIdentifier",
                                          "src": "29719:3:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "29719:11:81"
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "name": "dataPos",
                                            "nodeType": "YulIdentifier",
                                            "src": "29738:7:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "sload",
                                          "nodeType": "YulIdentifier",
                                          "src": "29732:5:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "29732:14:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "mstore",
                                      "nodeType": "YulIdentifier",
                                      "src": "29712:6:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "29712:35:81"
                                  },
                                  "nodeType": "YulExpressionStatement",
                                  "src": "29712:35:81"
                                },
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "29764:27:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "dataPos",
                                        "nodeType": "YulIdentifier",
                                        "src": "29779:7:81"
                                      },
                                      {
                                        "name": "_1",
                                        "nodeType": "YulIdentifier",
                                        "src": "29788:2:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "29775:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "29775:16:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "dataPos",
                                      "nodeType": "YulIdentifier",
                                      "src": "29764:7:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "condition": {
                              "arguments": [
                                {
                                  "name": "i",
                                  "nodeType": "YulIdentifier",
                                  "src": "29651:1:81"
                                },
                                {
                                  "name": "length",
                                  "nodeType": "YulIdentifier",
                                  "src": "29654:6:81"
                                }
                              ],
                              "functionName": {
                                "name": "lt",
                                "nodeType": "YulIdentifier",
                                "src": "29648:2:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "29648:13:81"
                            },
                            "nodeType": "YulForLoop",
                            "post": {
                              "nodeType": "YulBlock",
                              "src": "29662:19:81",
                              "statements": [
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "29664:15:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "i",
                                        "nodeType": "YulIdentifier",
                                        "src": "29673:1:81"
                                      },
                                      {
                                        "name": "_2",
                                        "nodeType": "YulIdentifier",
                                        "src": "29676:2:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "29669:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "29669:10:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "i",
                                      "nodeType": "YulIdentifier",
                                      "src": "29664:1:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "pre": {
                              "nodeType": "YulBlock",
                              "src": "29644:3:81",
                              "statements": []
                            },
                            "src": "29640:165:81"
                          },
                          {
                            "nodeType": "YulAssignment",
                            "src": "29818:23:81",
                            "value": {
                              "arguments": [
                                {
                                  "name": "pos",
                                  "nodeType": "YulIdentifier",
                                  "src": "29829:3:81"
                                },
                                {
                                  "name": "length",
                                  "nodeType": "YulIdentifier",
                                  "src": "29834:6:81"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "29825:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "29825:16:81"
                            },
                            "variableNames": [
                              {
                                "name": "ret",
                                "nodeType": "YulIdentifier",
                                "src": "29818:3:81"
                              }
                            ]
                          }
                        ]
                      },
                      "nodeType": "YulCase",
                      "src": "29496:355:81",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "29501:1:81",
                        "type": "",
                        "value": "1"
                      }
                    }
                  ],
                  "expression": {
                    "arguments": [
                      {
                        "name": "slotValue",
                        "nodeType": "YulIdentifier",
                        "src": "29331:9:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "29342:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "and",
                      "nodeType": "YulIdentifier",
                      "src": "29327:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "29327:18:81"
                  },
                  "nodeType": "YulSwitch",
                  "src": "29320:531:81"
                }
              ]
            },
            "name": "abi_encode_string_storage",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "29170:5:81",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "29177:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "ret",
                "nodeType": "YulTypedName",
                "src": "29185:3:81",
                "type": ""
              }
            ],
            "src": "29135:722:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "30043:96:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "30053:80:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "30086:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "30120:6:81"
                          },
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "30128:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "abi_encode_string_storage",
                          "nodeType": "YulIdentifier",
                          "src": "30094:25:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "30094:38:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string_storage",
                      "nodeType": "YulIdentifier",
                      "src": "30060:25:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30060:73:81"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "30053: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": "30011:3:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "30016:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "30024:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "30035:3:81",
                "type": ""
              }
            ],
            "src": "29862:277:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "30235:612:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "30281:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "30290:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "30293:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "30283:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "30283:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "30283:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "30256:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "30265:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "30252:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "30252:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "30277:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "30248:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30248:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "30245:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "30306:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "30326:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "30320:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30320:16:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "30310:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "30379:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "30388:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "30391:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "30381:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "30381:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "30381:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "30351:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "30359:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "30348:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30348:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "30345:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "30404:32:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "30418:9:81"
                      },
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "30429:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "30414:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30414:22:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "30408:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "30484:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "30493:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "30496:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "30486:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "30486:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "30486:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_1",
                                "nodeType": "YulIdentifier",
                                "src": "30463:2:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "30467:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "30459:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "30459:13:81"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "30474:7:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "30455:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "30455:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "30448:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30448:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "30445:55:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "30509:19:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "30525:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "30519:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30519:9:81"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "30513:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "30537:41:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "30575:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "array_allocation_size_bytes",
                      "nodeType": "YulIdentifier",
                      "src": "30547:27:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30547:31:81"
                  },
                  "variables": [
                    {
                      "name": "_3",
                      "nodeType": "YulTypedName",
                      "src": "30541:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "30587:23:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "30607:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "30601:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30601:9:81"
                  },
                  "variables": [
                    {
                      "name": "memPtr",
                      "nodeType": "YulTypedName",
                      "src": "30591:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "30639:6:81"
                      },
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "30647:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "finalize_allocation",
                      "nodeType": "YulIdentifier",
                      "src": "30619:19:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30619:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "30619:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "30666:6:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "30674:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "30659:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30659:18:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "30659:18:81"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "30723:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "30732:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "30735:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "30725:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "30725:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "30725:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_1",
                                "nodeType": "YulIdentifier",
                                "src": "30700:2:81"
                              },
                              {
                                "name": "_2",
                                "nodeType": "YulIdentifier",
                                "src": "30704:2:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "30696:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "30696:11:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "30709:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "30692:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "30692:20:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "30714:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "30689:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30689:33:81"
                  },
                  "nodeType": "YulIf",
                  "src": "30686:53:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "30787:2:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "30791:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "30783:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "30783:11:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "memPtr",
                            "nodeType": "YulIdentifier",
                            "src": "30800:6:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "30808:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "30796:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "30796:15:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "30813:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "copy_memory_to_memory_with_cleanup",
                      "nodeType": "YulIdentifier",
                      "src": "30748:34:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "30748:68:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "30748:68:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "30825:16:81",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "30835:6:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "30825:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_string_memory_ptr_fromMemory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "30201:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "30212:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "30224:6:81",
                "type": ""
              }
            ],
            "src": "30144:703:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "31036:205:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "31046:48:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "31082:6:81"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "31090:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string_storage",
                      "nodeType": "YulIdentifier",
                      "src": "31056:25:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31056:38:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "31050:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "31103:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "31123:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "31117:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31117:13:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "31107:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nodeType": "YulIdentifier",
                            "src": "31178:6:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "31186:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "31174:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "31174:17:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "31193:2:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "31197:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "copy_memory_to_memory_with_cleanup",
                      "nodeType": "YulIdentifier",
                      "src": "31139:34:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31139:65:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "31139:65:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "31213:22:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "31224:2:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "31228:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "31220:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31220:15:81"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "31213: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": "31004:3:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "31009:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "31017:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "31028:3:81",
                "type": ""
              }
            ],
            "src": "30852:389:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "31327:464:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "31360:425:81",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "31374:11:81",
                        "value": {
                          "kind": "number",
                          "nodeType": "YulLiteral",
                          "src": "31384:1:81",
                          "type": "",
                          "value": "0"
                        },
                        "variables": [
                          {
                            "name": "_1",
                            "nodeType": "YulTypedName",
                            "src": "31378:2:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "31405:2:81"
                            },
                            {
                              "name": "array",
                              "nodeType": "YulIdentifier",
                              "src": "31409:5:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "31398:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "31398:17:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "31398:17:81"
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "31428:31:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "31450:2:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "31454:4:81",
                              "type": "",
                              "value": "0x20"
                            }
                          ],
                          "functionName": {
                            "name": "keccak256",
                            "nodeType": "YulIdentifier",
                            "src": "31440:9:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "31440:19:81"
                        },
                        "variables": [
                          {
                            "name": "data",
                            "nodeType": "YulTypedName",
                            "src": "31432:4:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "31472:57:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "data",
                              "nodeType": "YulIdentifier",
                              "src": "31495:4:81"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "31505:1:81",
                                  "type": "",
                                  "value": "5"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "startIndex",
                                      "nodeType": "YulIdentifier",
                                      "src": "31512:10:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "31524:2:81",
                                      "type": "",
                                      "value": "31"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "31508:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "31508:19:81"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nodeType": "YulIdentifier",
                                "src": "31501:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "31501:27:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "31491:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "31491:38:81"
                        },
                        "variables": [
                          {
                            "name": "deleteStart",
                            "nodeType": "YulTypedName",
                            "src": "31476:11:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "31566:23:81",
                          "statements": [
                            {
                              "nodeType": "YulAssignment",
                              "src": "31568:19:81",
                              "value": {
                                "name": "data",
                                "nodeType": "YulIdentifier",
                                "src": "31583:4:81"
                              },
                              "variableNames": [
                                {
                                  "name": "deleteStart",
                                  "nodeType": "YulIdentifier",
                                  "src": "31568:11:81"
                                }
                              ]
                            }
                          ]
                        },
                        "condition": {
                          "arguments": [
                            {
                              "name": "startIndex",
                              "nodeType": "YulIdentifier",
                              "src": "31548:10:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "31560:4:81",
                              "type": "",
                              "value": "0x20"
                            }
                          ],
                          "functionName": {
                            "name": "lt",
                            "nodeType": "YulIdentifier",
                            "src": "31545:2:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "31545:20:81"
                        },
                        "nodeType": "YulIf",
                        "src": "31542:47:81"
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "31602:41:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "data",
                              "nodeType": "YulIdentifier",
                              "src": "31616:4:81"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "31626:1:81",
                                  "type": "",
                                  "value": "5"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "len",
                                      "nodeType": "YulIdentifier",
                                      "src": "31633:3:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "31638:2:81",
                                      "type": "",
                                      "value": "31"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "31629:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "31629:12:81"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nodeType": "YulIdentifier",
                                "src": "31622:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "31622:20:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "31612:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "31612:31:81"
                        },
                        "variables": [
                          {
                            "name": "_2",
                            "nodeType": "YulTypedName",
                            "src": "31606:2:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "31656:24:81",
                        "value": {
                          "name": "deleteStart",
                          "nodeType": "YulIdentifier",
                          "src": "31669:11:81"
                        },
                        "variables": [
                          {
                            "name": "start",
                            "nodeType": "YulTypedName",
                            "src": "31660:5:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "31754:21:81",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "name": "start",
                                    "nodeType": "YulIdentifier",
                                    "src": "31763:5:81"
                                  },
                                  {
                                    "name": "_1",
                                    "nodeType": "YulIdentifier",
                                    "src": "31770:2:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "sstore",
                                  "nodeType": "YulIdentifier",
                                  "src": "31756:6:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "31756:17:81"
                              },
                              "nodeType": "YulExpressionStatement",
                              "src": "31756:17:81"
                            }
                          ]
                        },
                        "condition": {
                          "arguments": [
                            {
                              "name": "start",
                              "nodeType": "YulIdentifier",
                              "src": "31704:5:81"
                            },
                            {
                              "name": "_2",
                              "nodeType": "YulIdentifier",
                              "src": "31711:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "lt",
                            "nodeType": "YulIdentifier",
                            "src": "31701:2:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "31701:13:81"
                        },
                        "nodeType": "YulForLoop",
                        "post": {
                          "nodeType": "YulBlock",
                          "src": "31715:26:81",
                          "statements": [
                            {
                              "nodeType": "YulAssignment",
                              "src": "31717:22:81",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "start",
                                    "nodeType": "YulIdentifier",
                                    "src": "31730:5:81"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "31737:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nodeType": "YulIdentifier",
                                  "src": "31726:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "31726:13:81"
                              },
                              "variableNames": [
                                {
                                  "name": "start",
                                  "nodeType": "YulIdentifier",
                                  "src": "31717:5:81"
                                }
                              ]
                            }
                          ]
                        },
                        "pre": {
                          "nodeType": "YulBlock",
                          "src": "31697:3:81",
                          "statements": []
                        },
                        "src": "31693:82:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "len",
                        "nodeType": "YulIdentifier",
                        "src": "31343:3:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "31348:2:81",
                        "type": "",
                        "value": "31"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "31340:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31340:11:81"
                  },
                  "nodeType": "YulIf",
                  "src": "31337:448:81"
                }
              ]
            },
            "name": "clean_up_bytearray_end_slots_string_storage",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "array",
                "nodeType": "YulTypedName",
                "src": "31299:5:81",
                "type": ""
              },
              {
                "name": "len",
                "nodeType": "YulTypedName",
                "src": "31306:3:81",
                "type": ""
              },
              {
                "name": "startIndex",
                "nodeType": "YulTypedName",
                "src": "31311:10:81",
                "type": ""
              }
            ],
            "src": "31246:545:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "31881:81:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "31891:65:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "data",
                            "nodeType": "YulIdentifier",
                            "src": "31906:4:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "31924:1:81",
                                        "type": "",
                                        "value": "3"
                                      },
                                      {
                                        "name": "len",
                                        "nodeType": "YulIdentifier",
                                        "src": "31927:3:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nodeType": "YulIdentifier",
                                      "src": "31920:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "31920:11:81"
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "31937:1:81",
                                        "type": "",
                                        "value": "0"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "not",
                                      "nodeType": "YulIdentifier",
                                      "src": "31933:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "31933:6:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "shr",
                                  "nodeType": "YulIdentifier",
                                  "src": "31916:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "31916:24:81"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nodeType": "YulIdentifier",
                              "src": "31912:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "31912:29:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "31902:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "31902:40:81"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "31948:1:81",
                            "type": "",
                            "value": "1"
                          },
                          {
                            "name": "len",
                            "nodeType": "YulIdentifier",
                            "src": "31951:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "31944:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "31944:11:81"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nodeType": "YulIdentifier",
                      "src": "31899:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "31899:57:81"
                  },
                  "variableNames": [
                    {
                      "name": "used",
                      "nodeType": "YulIdentifier",
                      "src": "31891:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "extract_used_part_and_set_length_of_short_byte_array",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "data",
                "nodeType": "YulTypedName",
                "src": "31858:4:81",
                "type": ""
              },
              {
                "name": "len",
                "nodeType": "YulTypedName",
                "src": "31864:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "used",
                "nodeType": "YulTypedName",
                "src": "31872:4:81",
                "type": ""
              }
            ],
            "src": "31796:166:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "32070:1103:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "32111:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "32113:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "32113:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "32113:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "len",
                        "nodeType": "YulIdentifier",
                        "src": "32086:3:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "32091:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "32083:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "32083:27:81"
                  },
                  "nodeType": "YulIf",
                  "src": "32080:53:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "slot",
                        "nodeType": "YulIdentifier",
                        "src": "32186:4:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "slot",
                                "nodeType": "YulIdentifier",
                                "src": "32224:4:81"
                              }
                            ],
                            "functionName": {
                              "name": "sload",
                              "nodeType": "YulIdentifier",
                              "src": "32218:5:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "32218:11:81"
                          }
                        ],
                        "functionName": {
                          "name": "extract_byte_array_length",
                          "nodeType": "YulIdentifier",
                          "src": "32192:25:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "32192:38:81"
                      },
                      {
                        "name": "len",
                        "nodeType": "YulIdentifier",
                        "src": "32232:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "clean_up_bytearray_end_slots_string_storage",
                      "nodeType": "YulIdentifier",
                      "src": "32142:43:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "32142:94:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "32142:94:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "32245:18:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "32262:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "srcOffset",
                      "nodeType": "YulTypedName",
                      "src": "32249:9:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "cases": [
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "32306:609:81",
                        "statements": [
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "32320:32:81",
                            "value": {
                              "arguments": [
                                {
                                  "name": "len",
                                  "nodeType": "YulIdentifier",
                                  "src": "32339:3:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "32348:2:81",
                                      "type": "",
                                      "value": "31"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "not",
                                    "nodeType": "YulIdentifier",
                                    "src": "32344:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "32344:7:81"
                                }
                              ],
                              "functionName": {
                                "name": "and",
                                "nodeType": "YulIdentifier",
                                "src": "32335:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "32335:17:81"
                            },
                            "variables": [
                              {
                                "name": "loopEnd",
                                "nodeType": "YulTypedName",
                                "src": "32324:7:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "32365:49:81",
                            "value": {
                              "arguments": [
                                {
                                  "name": "slot",
                                  "nodeType": "YulIdentifier",
                                  "src": "32409:4:81"
                                }
                              ],
                              "functionName": {
                                "name": "array_dataslot_string_storage",
                                "nodeType": "YulIdentifier",
                                "src": "32379:29:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "32379:35:81"
                            },
                            "variables": [
                              {
                                "name": "dstPtr",
                                "nodeType": "YulTypedName",
                                "src": "32369:6:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "32427:18:81",
                            "value": {
                              "name": "srcOffset",
                              "nodeType": "YulIdentifier",
                              "src": "32436:9:81"
                            },
                            "variables": [
                              {
                                "name": "i",
                                "nodeType": "YulTypedName",
                                "src": "32431:1:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "32515:172:81",
                              "statements": [
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "name": "dstPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "32540:6:81"
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "arguments": [
                                              {
                                                "name": "src",
                                                "nodeType": "YulIdentifier",
                                                "src": "32565:3:81"
                                              },
                                              {
                                                "name": "srcOffset",
                                                "nodeType": "YulIdentifier",
                                                "src": "32570:9:81"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "add",
                                              "nodeType": "YulIdentifier",
                                              "src": "32561:3:81"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "32561:19:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "calldataload",
                                          "nodeType": "YulIdentifier",
                                          "src": "32548:12:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "32548:33:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sstore",
                                      "nodeType": "YulIdentifier",
                                      "src": "32533:6:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "32533:49:81"
                                  },
                                  "nodeType": "YulExpressionStatement",
                                  "src": "32533:49:81"
                                },
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "32599:24:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "dstPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "32613:6:81"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "32621:1:81",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "32609:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "32609:14:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "dstPtr",
                                      "nodeType": "YulIdentifier",
                                      "src": "32599:6:81"
                                    }
                                  ]
                                },
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "32640:33:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "srcOffset",
                                        "nodeType": "YulIdentifier",
                                        "src": "32657:9:81"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "32668:4:81",
                                        "type": "",
                                        "value": "0x20"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "32653:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "32653:20:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "srcOffset",
                                      "nodeType": "YulIdentifier",
                                      "src": "32640:9:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "condition": {
                              "arguments": [
                                {
                                  "name": "i",
                                  "nodeType": "YulIdentifier",
                                  "src": "32469:1:81"
                                },
                                {
                                  "name": "loopEnd",
                                  "nodeType": "YulIdentifier",
                                  "src": "32472:7:81"
                                }
                              ],
                              "functionName": {
                                "name": "lt",
                                "nodeType": "YulIdentifier",
                                "src": "32466:2:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "32466:14:81"
                            },
                            "nodeType": "YulForLoop",
                            "post": {
                              "nodeType": "YulBlock",
                              "src": "32481:21:81",
                              "statements": [
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "32483:17:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "i",
                                        "nodeType": "YulIdentifier",
                                        "src": "32492:1:81"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "32495:4:81",
                                        "type": "",
                                        "value": "0x20"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "32488:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "32488:12:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "i",
                                      "nodeType": "YulIdentifier",
                                      "src": "32483:1:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "pre": {
                              "nodeType": "YulBlock",
                              "src": "32462:3:81",
                              "statements": []
                            },
                            "src": "32458:229:81"
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "32732:127:81",
                              "statements": [
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "name": "dstPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "32757:6:81"
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "arguments": [
                                              {
                                                "arguments": [
                                                  {
                                                    "name": "src",
                                                    "nodeType": "YulIdentifier",
                                                    "src": "32786:3:81"
                                                  },
                                                  {
                                                    "name": "srcOffset",
                                                    "nodeType": "YulIdentifier",
                                                    "src": "32791:9:81"
                                                  }
                                                ],
                                                "functionName": {
                                                  "name": "add",
                                                  "nodeType": "YulIdentifier",
                                                  "src": "32782:3:81"
                                                },
                                                "nodeType": "YulFunctionCall",
                                                "src": "32782:19:81"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "calldataload",
                                              "nodeType": "YulIdentifier",
                                              "src": "32769:12:81"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "32769:33:81"
                                          },
                                          {
                                            "arguments": [
                                              {
                                                "arguments": [
                                                  {
                                                    "arguments": [
                                                      {
                                                        "arguments": [
                                                          {
                                                            "kind": "number",
                                                            "nodeType": "YulLiteral",
                                                            "src": "32820:1:81",
                                                            "type": "",
                                                            "value": "3"
                                                          },
                                                          {
                                                            "name": "len",
                                                            "nodeType": "YulIdentifier",
                                                            "src": "32823:3:81"
                                                          }
                                                        ],
                                                        "functionName": {
                                                          "name": "shl",
                                                          "nodeType": "YulIdentifier",
                                                          "src": "32816:3:81"
                                                        },
                                                        "nodeType": "YulFunctionCall",
                                                        "src": "32816:11:81"
                                                      },
                                                      {
                                                        "kind": "number",
                                                        "nodeType": "YulLiteral",
                                                        "src": "32829:3:81",
                                                        "type": "",
                                                        "value": "248"
                                                      }
                                                    ],
                                                    "functionName": {
                                                      "name": "and",
                                                      "nodeType": "YulIdentifier",
                                                      "src": "32812:3:81"
                                                    },
                                                    "nodeType": "YulFunctionCall",
                                                    "src": "32812:21:81"
                                                  },
                                                  {
                                                    "arguments": [
                                                      {
                                                        "kind": "number",
                                                        "nodeType": "YulLiteral",
                                                        "src": "32839:1:81",
                                                        "type": "",
                                                        "value": "0"
                                                      }
                                                    ],
                                                    "functionName": {
                                                      "name": "not",
                                                      "nodeType": "YulIdentifier",
                                                      "src": "32835:3:81"
                                                    },
                                                    "nodeType": "YulFunctionCall",
                                                    "src": "32835:6:81"
                                                  }
                                                ],
                                                "functionName": {
                                                  "name": "shr",
                                                  "nodeType": "YulIdentifier",
                                                  "src": "32808:3:81"
                                                },
                                                "nodeType": "YulFunctionCall",
                                                "src": "32808:34:81"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "not",
                                              "nodeType": "YulIdentifier",
                                              "src": "32804:3:81"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "32804:39:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "and",
                                          "nodeType": "YulIdentifier",
                                          "src": "32765:3:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "32765:79:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sstore",
                                      "nodeType": "YulIdentifier",
                                      "src": "32750:6:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "32750:95:81"
                                  },
                                  "nodeType": "YulExpressionStatement",
                                  "src": "32750:95:81"
                                }
                              ]
                            },
                            "condition": {
                              "arguments": [
                                {
                                  "name": "loopEnd",
                                  "nodeType": "YulIdentifier",
                                  "src": "32706:7:81"
                                },
                                {
                                  "name": "len",
                                  "nodeType": "YulIdentifier",
                                  "src": "32715:3:81"
                                }
                              ],
                              "functionName": {
                                "name": "lt",
                                "nodeType": "YulIdentifier",
                                "src": "32703:2:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "32703:16:81"
                            },
                            "nodeType": "YulIf",
                            "src": "32700:159:81"
                          },
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "name": "slot",
                                  "nodeType": "YulIdentifier",
                                  "src": "32879:4:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "32893:1:81",
                                          "type": "",
                                          "value": "1"
                                        },
                                        {
                                          "name": "len",
                                          "nodeType": "YulIdentifier",
                                          "src": "32896:3:81"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "shl",
                                        "nodeType": "YulIdentifier",
                                        "src": "32889:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "32889:11:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "32902:1:81",
                                      "type": "",
                                      "value": "1"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "32885:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "32885:19:81"
                                }
                              ],
                              "functionName": {
                                "name": "sstore",
                                "nodeType": "YulIdentifier",
                                "src": "32872:6:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "32872:33:81"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "32872:33:81"
                          }
                        ]
                      },
                      "nodeType": "YulCase",
                      "src": "32299:616:81",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "32304:1:81",
                        "type": "",
                        "value": "1"
                      }
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "32932:235:81",
                        "statements": [
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "32946:14:81",
                            "value": {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "32959:1:81",
                              "type": "",
                              "value": "0"
                            },
                            "variables": [
                              {
                                "name": "value",
                                "nodeType": "YulTypedName",
                                "src": "32950:5:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "32992:74:81",
                              "statements": [
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "33010:42:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "name": "src",
                                            "nodeType": "YulIdentifier",
                                            "src": "33036:3:81"
                                          },
                                          {
                                            "name": "srcOffset",
                                            "nodeType": "YulIdentifier",
                                            "src": "33041:9:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "add",
                                          "nodeType": "YulIdentifier",
                                          "src": "33032:3:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "33032:19:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "calldataload",
                                      "nodeType": "YulIdentifier",
                                      "src": "33019:12:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "33019:33:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "value",
                                      "nodeType": "YulIdentifier",
                                      "src": "33010:5:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "condition": {
                              "name": "len",
                              "nodeType": "YulIdentifier",
                              "src": "32976:3:81"
                            },
                            "nodeType": "YulIf",
                            "src": "32973:93:81"
                          },
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "name": "slot",
                                  "nodeType": "YulIdentifier",
                                  "src": "33086:4:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "value",
                                      "nodeType": "YulIdentifier",
                                      "src": "33145:5:81"
                                    },
                                    {
                                      "name": "len",
                                      "nodeType": "YulIdentifier",
                                      "src": "33152:3:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "extract_used_part_and_set_length_of_short_byte_array",
                                    "nodeType": "YulIdentifier",
                                    "src": "33092:52:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "33092:64:81"
                                }
                              ],
                              "functionName": {
                                "name": "sstore",
                                "nodeType": "YulIdentifier",
                                "src": "33079:6:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "33079:78:81"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "33079:78:81"
                          }
                        ]
                      },
                      "nodeType": "YulCase",
                      "src": "32924:243:81",
                      "value": "default"
                    }
                  ],
                  "expression": {
                    "arguments": [
                      {
                        "name": "len",
                        "nodeType": "YulIdentifier",
                        "src": "32282:3:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "32287:2:81",
                        "type": "",
                        "value": "31"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "32279:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "32279:11:81"
                  },
                  "nodeType": "YulSwitch",
                  "src": "32272: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": "32050:4:81",
                "type": ""
              },
              {
                "name": "src",
                "nodeType": "YulTypedName",
                "src": "32056:3:81",
                "type": ""
              },
              {
                "name": "len",
                "nodeType": "YulTypedName",
                "src": "32061:3:81",
                "type": ""
              }
            ],
            "src": "31967:1206:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "33256:233:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "33273:3:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "33278:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "33266:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33266:19:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "33266:19:81"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "33329:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "33338:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "33341:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "33331:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "33331:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "33331:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "33300:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "33316:3:81",
                                "type": "",
                                "value": "251"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "33321:1:81",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "33312:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "33312:11:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "33325:1:81",
                            "type": "",
                            "value": "1"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "33308:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "33308:19:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "33297:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33297:31:81"
                  },
                  "nodeType": "YulIf",
                  "src": "33294:51:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "33354:30:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "33374:1:81",
                        "type": "",
                        "value": "5"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "33377:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "shl",
                      "nodeType": "YulIdentifier",
                      "src": "33370:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33370:14:81"
                  },
                  "variables": [
                    {
                      "name": "length_1",
                      "nodeType": "YulTypedName",
                      "src": "33358:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "33410:3:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "33415:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "33406:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "33406:14:81"
                      },
                      {
                        "name": "start",
                        "nodeType": "YulIdentifier",
                        "src": "33422:5:81"
                      },
                      {
                        "name": "length_1",
                        "nodeType": "YulIdentifier",
                        "src": "33429:8:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldatacopy",
                      "nodeType": "YulIdentifier",
                      "src": "33393:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33393:45:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "33393:45:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "33447:36:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "33462:3:81"
                          },
                          {
                            "name": "length_1",
                            "nodeType": "YulIdentifier",
                            "src": "33467:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "33458:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "33458:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "33478:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "33454:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33454:29:81"
                  },
                  "variableNames": [
                    {
                      "name": "end",
                      "nodeType": "YulIdentifier",
                      "src": "33447:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_array_uint256_dyn_calldata",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "start",
                "nodeType": "YulTypedName",
                "src": "33225:5:81",
                "type": ""
              },
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "33232:6:81",
                "type": ""
              },
              {
                "name": "pos",
                "nodeType": "YulTypedName",
                "src": "33240:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "33248:3:81",
                "type": ""
              }
            ],
            "src": "33178:311:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "33759:663:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "33769:32:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "33787:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "33798:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "33783:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33783:18:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "33773:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "33817:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "33828:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "33810:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33810:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "33810:21:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "33840:17:81",
                  "value": {
                    "name": "tail_1",
                    "nodeType": "YulIdentifier",
                    "src": "33851:6:81"
                  },
                  "variables": [
                    {
                      "name": "pos",
                      "nodeType": "YulTypedName",
                      "src": "33844:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "33873:6:81"
                      },
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "33881:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "33866:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33866:22:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "33866:22:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "33897:25:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "33908:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "33919:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "33904:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33904:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "33897:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "33931:20:81",
                  "value": {
                    "name": "value0",
                    "nodeType": "YulIdentifier",
                    "src": "33945:6:81"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nodeType": "YulTypedName",
                      "src": "33935:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "33960:10:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "33969:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "33964:1:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "34028:255:81",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "34042:33:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "34068:6:81"
                            }
                          ],
                          "functionName": {
                            "name": "calldataload",
                            "nodeType": "YulIdentifier",
                            "src": "34055:12:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "34055:20:81"
                        },
                        "variables": [
                          {
                            "name": "value",
                            "nodeType": "YulTypedName",
                            "src": "34046:5:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "value",
                              "nodeType": "YulIdentifier",
                              "src": "34113:5:81"
                            }
                          ],
                          "functionName": {
                            "name": "validator_revert_address",
                            "nodeType": "YulIdentifier",
                            "src": "34088:24:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "34088:31:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "34088:31:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "34139:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "value",
                                  "nodeType": "YulIdentifier",
                                  "src": "34148:5:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "34163:3:81",
                                          "type": "",
                                          "value": "160"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "34168:1:81",
                                          "type": "",
                                          "value": "1"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "shl",
                                        "nodeType": "YulIdentifier",
                                        "src": "34159:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "34159:11:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "34172:1:81",
                                      "type": "",
                                      "value": "1"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "sub",
                                    "nodeType": "YulIdentifier",
                                    "src": "34155:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "34155:19:81"
                                }
                              ],
                              "functionName": {
                                "name": "and",
                                "nodeType": "YulIdentifier",
                                "src": "34144:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "34144:31:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "34132:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "34132:44:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "34132:44:81"
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "34189:14:81",
                        "value": {
                          "kind": "number",
                          "nodeType": "YulLiteral",
                          "src": "34199:4:81",
                          "type": "",
                          "value": "0x20"
                        },
                        "variables": [
                          {
                            "name": "_1",
                            "nodeType": "YulTypedName",
                            "src": "34193:2:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "34216:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "34227:3:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "34232:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "34223:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "34223:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "34216:3:81"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "34248:25:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "34262:6:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "34270:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "34258:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "34258:15:81"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nodeType": "YulIdentifier",
                            "src": "34248:6:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "33990:1:81"
                      },
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "33993:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "33987:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "33987:13:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "34001:18:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "34003:14:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "34012:1:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "34015:1:81",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "34008:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "34008:9:81"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "34003:1:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "33983:3:81",
                    "statements": []
                  },
                  "src": "33979:304:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "34303:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "34314:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "34299:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "34299:20:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "34325:3:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "34330:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "34321:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "34321:19:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "34292:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34292:49:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "34292:49:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "34350:66:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "34396:6:81"
                      },
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "34404:6:81"
                      },
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "34412:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "34358:37:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34358:58:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "34350: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": "33704:9:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "33715:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "33723:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "33731:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "33739:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "33750:4:81",
                "type": ""
              }
            ],
            "src": "33494:928:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "34601:178:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "34618:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "34629:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "34611:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34611:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "34611:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "34652:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "34663:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "34648:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "34648:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "34668:2:81",
                        "type": "",
                        "value": "28"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "34641:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34641:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "34641:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "34691:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "34702:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "34687:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "34687:18:81"
                      },
                      {
                        "hexValue": "4d6f7265207468616e203120726f79616c7479207265636569766572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "34707:30:81",
                        "type": "",
                        "value": "More than 1 royalty receiver"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "34680:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34680:58:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "34680:58:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "34747:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "34759:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "34770:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "34755:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34755:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "34747:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_74694d19c1b4be9a45fa733d1aaae2782afce905305cd809636e222af28aa3f3__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "34578:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "34592:4:81",
                "type": ""
              }
            ],
            "src": "34427:352:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "34836:116:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "34846:20:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "34861:1:81"
                      },
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "34864:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "mul",
                      "nodeType": "YulIdentifier",
                      "src": "34857:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34857:9:81"
                  },
                  "variableNames": [
                    {
                      "name": "product",
                      "nodeType": "YulIdentifier",
                      "src": "34846:7:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "34924:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "34926:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "34926:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "34926:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "x",
                                "nodeType": "YulIdentifier",
                                "src": "34895:1:81"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nodeType": "YulIdentifier",
                              "src": "34888:6:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "34888:9:81"
                          },
                          {
                            "arguments": [
                              {
                                "name": "y",
                                "nodeType": "YulIdentifier",
                                "src": "34902:1:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "name": "product",
                                    "nodeType": "YulIdentifier",
                                    "src": "34909:7:81"
                                  },
                                  {
                                    "name": "x",
                                    "nodeType": "YulIdentifier",
                                    "src": "34918:1:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "div",
                                  "nodeType": "YulIdentifier",
                                  "src": "34905:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "34905:15:81"
                              }
                            ],
                            "functionName": {
                              "name": "eq",
                              "nodeType": "YulIdentifier",
                              "src": "34899:2:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "34899:22:81"
                          }
                        ],
                        "functionName": {
                          "name": "or",
                          "nodeType": "YulIdentifier",
                          "src": "34885:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "34885:37:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "34878:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34878:45:81"
                  },
                  "nodeType": "YulIf",
                  "src": "34875:71:81"
                }
              ]
            },
            "name": "checked_mul_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nodeType": "YulTypedName",
                "src": "34815:1:81",
                "type": ""
              },
              {
                "name": "y",
                "nodeType": "YulTypedName",
                "src": "34818:1:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "product",
                "nodeType": "YulTypedName",
                "src": "34824:7:81",
                "type": ""
              }
            ],
            "src": "34784:168:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "34989:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35006:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "35013:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "35018:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "35009:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "35009:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "34999:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "34999:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "34999:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35046:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35049:4:81",
                        "type": "",
                        "value": "0x12"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "35039:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35039:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35039:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35070:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35073:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "35063:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35063:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35063:15:81"
                }
              ]
            },
            "name": "panic_error_0x12",
            "nodeType": "YulFunctionDefinition",
            "src": "34957:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "35135:171:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "35166:111:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "35187:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "35194:3:81",
                                  "type": "",
                                  "value": "224"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "35199:10:81",
                                  "type": "",
                                  "value": "0x4e487b71"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nodeType": "YulIdentifier",
                                "src": "35190:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "35190:20:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "35180:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "35180:31:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "35180:31:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "35231:1:81",
                              "type": "",
                              "value": "4"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "35234:4:81",
                              "type": "",
                              "value": "0x12"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "35224:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "35224:15:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "35224:15:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "35259:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "35262:4:81",
                              "type": "",
                              "value": "0x24"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "35252:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "35252:15:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "35252:15:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "35155:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "35148:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35148:9:81"
                  },
                  "nodeType": "YulIf",
                  "src": "35145:132:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "35286:14:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "35295:1:81"
                      },
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "35298:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "div",
                      "nodeType": "YulIdentifier",
                      "src": "35291:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35291:9:81"
                  },
                  "variableNames": [
                    {
                      "name": "r",
                      "nodeType": "YulIdentifier",
                      "src": "35286:1:81"
                    }
                  ]
                }
              ]
            },
            "name": "checked_div_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nodeType": "YulTypedName",
                "src": "35120:1:81",
                "type": ""
              },
              {
                "name": "y",
                "nodeType": "YulTypedName",
                "src": "35123:1:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "r",
                "nodeType": "YulTypedName",
                "src": "35129:1:81",
                "type": ""
              }
            ],
            "src": "35089:217:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "35485:182:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "35502:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35513:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "35495:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35495:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35495:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "35536:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "35547:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "35532:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "35532:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35552:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "35525:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35525:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35525:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "35575:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "35586:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "35571:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "35571:18:81"
                      },
                      {
                        "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "35591:34:81",
                        "type": "",
                        "value": "Ownable: caller is not the owner"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "35564:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35564:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35564:62:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "35635:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "35647:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35658:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "35643:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35643:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "35635:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "35462:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "35476:4:81",
                "type": ""
              }
            ],
            "src": "35311:356:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "35846:230:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "35863:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35874:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "35856:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35856:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35856:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "35897:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "35908:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "35893:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "35893:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "35913:2:81",
                        "type": "",
                        "value": "40"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "35886:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35886:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35886:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "35936:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "35947:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "35932:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "35932:18:81"
                      },
                      {
                        "hexValue": "455243313135353a2069647320616e6420616d6f756e7473206c656e67746820",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "35952:34:81",
                        "type": "",
                        "value": "ERC1155: ids and amounts length "
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "35925:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35925:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35925:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "36007:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "36018:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "36003:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "36003:18:81"
                      },
                      {
                        "hexValue": "6d69736d61746368",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "36023:10:81",
                        "type": "",
                        "value": "mismatch"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "35996:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "35996:38:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "35996:38:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "36043:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "36055:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "36066:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "36051:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36051:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "36043:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "35823:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "35837:4:81",
                "type": ""
              }
            ],
            "src": "35672:404:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "36255:227:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "36272:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "36283:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "36265:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36265:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "36265:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "36306:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "36317:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "36302:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "36302:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "36322:2:81",
                        "type": "",
                        "value": "37"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "36295:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36295:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "36295:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "36345:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "36356:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "36341:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "36341:18:81"
                      },
                      {
                        "hexValue": "455243313135353a207472616e7366657220746f20746865207a65726f206164",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "36361:34:81",
                        "type": "",
                        "value": "ERC1155: transfer to the zero ad"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "36334:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36334:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "36334:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "36416:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "36427:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "36412:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "36412:18:81"
                      },
                      {
                        "hexValue": "6472657373",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "36432:7:81",
                        "type": "",
                        "value": "dress"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "36405:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36405:35:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "36405:35:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "36449:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "36461:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "36472:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "36457:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36457:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "36449:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "36232:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "36246:4:81",
                "type": ""
              }
            ],
            "src": "36081:401:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "36661:232:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "36678:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "36689:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "36671:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36671:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "36671:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "36712:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "36723:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "36708:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "36708:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "36728:2:81",
                        "type": "",
                        "value": "42"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "36701:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36701:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "36701:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "36751:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "36762:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "36747:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "36747:18:81"
                      },
                      {
                        "hexValue": "455243313135353a20696e73756666696369656e742062616c616e636520666f",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "36767:34:81",
                        "type": "",
                        "value": "ERC1155: insufficient balance fo"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "36740:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36740:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "36740:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "36822:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "36833:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "36818:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "36818:18:81"
                      },
                      {
                        "hexValue": "72207472616e73666572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "36838:12:81",
                        "type": "",
                        "value": "r transfer"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "36811:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36811:40:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "36811:40:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "36860:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "36872:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "36883:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "36868:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36868:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "36860:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_8ac7e9556b567c1c94bb4daaa3c3a65be5ac686579615210cb910fb8cb8d65bf__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "36638:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "36652:4:81",
                "type": ""
              }
            ],
            "src": "36487:406:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "36946:77:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "36956:16:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "36967:1:81"
                      },
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "36970:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "36963:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36963:9:81"
                  },
                  "variableNames": [
                    {
                      "name": "sum",
                      "nodeType": "YulIdentifier",
                      "src": "36956:3:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "36995:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "36997:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "36997:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "36997:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "36987:1:81"
                      },
                      {
                        "name": "sum",
                        "nodeType": "YulIdentifier",
                        "src": "36990:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "36984:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "36984:10:81"
                  },
                  "nodeType": "YulIf",
                  "src": "36981:36:81"
                }
              ]
            },
            "name": "checked_add_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nodeType": "YulTypedName",
                "src": "36929:1:81",
                "type": ""
              },
              {
                "name": "y",
                "nodeType": "YulTypedName",
                "src": "36932:1:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "sum",
                "nodeType": "YulTypedName",
                "src": "36938:3:81",
                "type": ""
              }
            ],
            "src": "36898:125:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "37257:236:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "37274:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "37285:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "37267:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37267:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "37267:21:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "37297:70:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "37340:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "37352:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "37363:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "37348:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "37348:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "37311:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37311:56:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "37301:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "37387:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "37398:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "37383:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "37383:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_1",
                            "nodeType": "YulIdentifier",
                            "src": "37407:6:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "37415:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "37403:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "37403:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "37376:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37376:50:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "37376:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "37435:52:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "37472:6:81"
                      },
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "37480:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "37443:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37443:44:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "37435:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "37218:9:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "37229:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "37237:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "37248:4:81",
                "type": ""
              }
            ],
            "src": "37028:465:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "37672:156:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "37689:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "37700:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "37682:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37682:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "37682:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "37723:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "37734:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "37719:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "37719:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "37739:1:81",
                        "type": "",
                        "value": "7"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "37712:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37712:29:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "37712:29:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "37761:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "37772:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "37757:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "37757:18:81"
                      },
                      {
                        "hexValue": "496e76616c6964",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "37777:9:81",
                        "type": "",
                        "value": "Invalid"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "37750:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37750:37:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "37750:37:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "37796:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "37808:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "37819:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "37804:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "37804:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "37796:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_c84d91f537f720db0d8ff8472db06e97a59d22ac83366d0af861134338d0e345__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "37649:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "37663:4:81",
                "type": ""
              }
            ],
            "src": "37498:330:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "38007:181:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "38024:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "38035:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "38017:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38017:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "38017:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "38058:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "38069:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "38054:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "38054:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "38074:2:81",
                        "type": "",
                        "value": "31"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "38047:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38047:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "38047:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "38097:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "38108:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "38093:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "38093:18:81"
                      },
                      {
                        "hexValue": "5265656e7472616e637947756172643a207265656e7472616e742063616c6c",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "38113:33:81",
                        "type": "",
                        "value": "ReentrancyGuard: reentrant call"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "38086:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38086:61:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "38086:61:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "38156:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "38168:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "38179:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "38164:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38164:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "38156:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_ebf73bba305590e4764d5cb53b69bffd6d4d092d1a67551cb346f8cfcdab8619__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "37984:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "37998:4:81",
                "type": ""
              }
            ],
            "src": "37833:355:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "38242:79:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "38252:17:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "38264:1:81"
                      },
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "38267:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nodeType": "YulIdentifier",
                      "src": "38260:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38260:9:81"
                  },
                  "variableNames": [
                    {
                      "name": "diff",
                      "nodeType": "YulIdentifier",
                      "src": "38252:4:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "38293:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "38295:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "38295:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "38295:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "diff",
                        "nodeType": "YulIdentifier",
                        "src": "38284:4:81"
                      },
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "38290:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "38281:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38281:11:81"
                  },
                  "nodeType": "YulIf",
                  "src": "38278:37:81"
                }
              ]
            },
            "name": "checked_sub_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nodeType": "YulTypedName",
                "src": "38224:1:81",
                "type": ""
              },
              {
                "name": "y",
                "nodeType": "YulTypedName",
                "src": "38227:1:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "diff",
                "nodeType": "YulTypedName",
                "src": "38233:4:81",
                "type": ""
              }
            ],
            "src": "38193:128:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "38500:178:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "38517:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "38528:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "38510:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38510:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "38510:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "38551:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "38562:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "38547:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "38547:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "38567:2:81",
                        "type": "",
                        "value": "28"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "38540:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38540:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "38540:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "38590:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "38601:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "38586:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "38586:18:81"
                      },
                      {
                        "hexValue": "4d69736d61746368656420746f6b656e206f726967696e61746f7273",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "38606:30:81",
                        "type": "",
                        "value": "Mismatched token originators"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "38579:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38579:58:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "38579:58:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "38646:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "38658:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "38669:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "38654:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38654:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "38646:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_949602a3a8201646aa1cfd4aa9eeb487c03c2df49971f81c096e783331adde02__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "38477:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "38491:4:81",
                "type": ""
              }
            ],
            "src": "38326:352:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "38960:339:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "38977:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "38992:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "39008:3:81",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "39013:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "39004:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "39004:11:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "39017:1:81",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "39000:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "39000:19:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "38988:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "38988:32:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "38970:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "38970:51:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "38970:51:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "39041:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "39052:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "39037:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "39037:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "39057:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "39030:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39030:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "39030:30:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "39069:87:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "39121:6:81"
                      },
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "39129:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "39141:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "39152:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "39137:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "39137:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "39083:37:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39083:73:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "39073:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "39176:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "39187:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "39172:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "39172:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_1",
                            "nodeType": "YulIdentifier",
                            "src": "39196:6:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "39204:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "39192:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "39192:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "39165:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39165:50:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "39165:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "39224:69:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "39270:6:81"
                      },
                      {
                        "name": "value4",
                        "nodeType": "YulIdentifier",
                        "src": "39278:6:81"
                      },
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "39286:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn_calldata",
                      "nodeType": "YulIdentifier",
                      "src": "39232:37:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39232:61:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "39224:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_address_t_array$_t_uint256_$dyn_calldata_ptr_t_array$_t_uint256_$dyn_calldata_ptr__to_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "38897:9:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "38908:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "38916:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "38924:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "38932:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "38940:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "38951:4:81",
                "type": ""
              }
            ],
            "src": "38683:616:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "39478:178:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "39495:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "39506:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "39488:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39488:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "39488:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "39529:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "39540:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "39525:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "39525:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "39545:2:81",
                        "type": "",
                        "value": "28"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "39518:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39518:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "39518:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "39568:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "39579:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "39564:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "39564:18:81"
                      },
                      {
                        "hexValue": "4d757374206265207265676973746572656420657874656e73696f6e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "39584:30:81",
                        "type": "",
                        "value": "Must be registered extension"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "39557:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39557:58:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "39557:58:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "39624:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "39636:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "39647:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "39632:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39632:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "39624:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_5feba5446d49a024c011d96fb2b4cea222ce6e949e033fe53cd137156df8a35f__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "39455:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "39469:4:81",
                "type": ""
              }
            ],
            "src": "39304:352:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "39835:233:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "39852:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "39863:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "39845:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39845:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "39845:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "39886:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "39897:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "39882:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "39882:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "39902:2:81",
                        "type": "",
                        "value": "43"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "39875:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39875:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "39875:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "39925:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "39936:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "39921:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "39921:18:81"
                      },
                      {
                        "hexValue": "496e697469616c697a61626c653a20636f6e7472616374206973206e6f742069",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "39941:34:81",
                        "type": "",
                        "value": "Initializable: contract is not i"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "39914:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39914:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "39914:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "39996:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "40007:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "39992:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "39992:18:81"
                      },
                      {
                        "hexValue": "6e697469616c697a696e67",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "40012:13:81",
                        "type": "",
                        "value": "nitializing"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "39985:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "39985:41:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "39985:41:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "40035:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "40047:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "40058:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "40043:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40043:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "40035:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_d688db918bb9dd50354922faa108595679886fe9ff08046ad1ffe30aaea55f8b__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "39812:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "39826:4:81",
                "type": ""
              }
            ],
            "src": "39661:407:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "40247:231:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "40264:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "40275:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "40257:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40257:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "40257:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "40298:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "40309:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "40294:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "40294:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "40314:2:81",
                        "type": "",
                        "value": "41"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "40287:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40287:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "40287:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "40337:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "40348:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "40333:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "40333:18:81"
                      },
                      {
                        "hexValue": "455243313135353a2073657474696e6720617070726f76616c20737461747573",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "40353:34:81",
                        "type": "",
                        "value": "ERC1155: setting approval status"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "40326:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40326:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "40326:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "40408:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "40419:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "40404:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "40404:18:81"
                      },
                      {
                        "hexValue": "20666f722073656c66",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "40424:11:81",
                        "type": "",
                        "value": " for self"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "40397:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40397:39:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "40397:39:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "40445:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "40457:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "40468:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "40453:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40453:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "40445:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "40224:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "40238:4:81",
                "type": ""
              }
            ],
            "src": "40073:405:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "40558:646:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "40607:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "40616:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "40619:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "40609:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "40609:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "40609:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "40586:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "40594:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "40582:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "40582:17:81"
                          },
                          {
                            "name": "end",
                            "nodeType": "YulIdentifier",
                            "src": "40601:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "40578:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "40578:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "40571:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40571:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "40568:55:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "40632:23:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "40648:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "40642:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40642:13:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "40636:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "40664:14:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "40674:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "40668:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "40687:53:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "40737:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "array_allocation_size_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "40697:39:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40697:43:81"
                  },
                  "variables": [
                    {
                      "name": "_3",
                      "nodeType": "YulTypedName",
                      "src": "40691:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "40749:23:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "40769:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "40763:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40763:9:81"
                  },
                  "variables": [
                    {
                      "name": "memPtr",
                      "nodeType": "YulTypedName",
                      "src": "40753:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "40801:6:81"
                      },
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "40809:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "finalize_allocation",
                      "nodeType": "YulIdentifier",
                      "src": "40781:19:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40781:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "40781:31:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "40821:17:81",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "40832:6:81"
                  },
                  "variables": [
                    {
                      "name": "dst",
                      "nodeType": "YulTypedName",
                      "src": "40825:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "40854:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "40862:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "40847:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40847:18:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "40847:18:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "40874:22:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "40885:6:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "40893:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "40881:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40881:15:81"
                  },
                  "variableNames": [
                    {
                      "name": "dst",
                      "nodeType": "YulIdentifier",
                      "src": "40874:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "40905:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "40927:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "40939:1:81",
                                "type": "",
                                "value": "5"
                              },
                              {
                                "name": "_1",
                                "nodeType": "YulIdentifier",
                                "src": "40942:2:81"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "40935:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "40935:10:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "40923:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "40923:23:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "40948:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "40919:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40919:32:81"
                  },
                  "variables": [
                    {
                      "name": "srcEnd",
                      "nodeType": "YulTypedName",
                      "src": "40909:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "40979:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "40988:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "40991:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "40981:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "40981:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "40981:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "40966:6:81"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "40974:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "40963:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "40963:15:81"
                  },
                  "nodeType": "YulIf",
                  "src": "40960:35:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "41004:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "41019:6:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "41027:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "41015:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41015:15:81"
                  },
                  "variables": [
                    {
                      "name": "src",
                      "nodeType": "YulTypedName",
                      "src": "41008:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "41095:79:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "41116:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "src",
                                  "nodeType": "YulIdentifier",
                                  "src": "41127:3:81"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nodeType": "YulIdentifier",
                                "src": "41121:5:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "41121:10:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "41109:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "41109:23:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "41109:23:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "41145:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "41156:3:81"
                            },
                            {
                              "name": "_2",
                              "nodeType": "YulIdentifier",
                              "src": "41161:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "41152:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "41152:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "dst",
                            "nodeType": "YulIdentifier",
                            "src": "41145:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "src",
                        "nodeType": "YulIdentifier",
                        "src": "41050:3:81"
                      },
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "41055:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "41047:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41047:15:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "41063:23:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "41065:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "src",
                              "nodeType": "YulIdentifier",
                              "src": "41076:3:81"
                            },
                            {
                              "name": "_2",
                              "nodeType": "YulIdentifier",
                              "src": "41081:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "41072:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "41072:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "src",
                            "nodeType": "YulIdentifier",
                            "src": "41065:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "41043:3:81",
                    "statements": []
                  },
                  "src": "41039:135:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "41183:15:81",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "41192:6:81"
                  },
                  "variableNames": [
                    {
                      "name": "array",
                      "nodeType": "YulIdentifier",
                      "src": "41183:5:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_array_uint256_dyn_fromMemory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "40532:6:81",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "40540:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "array",
                "nodeType": "YulTypedName",
                "src": "40548:5:81",
                "type": ""
              }
            ],
            "src": "40483:721:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "41365:1123:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "41411:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "41420:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "41423:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "41413:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "41413:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "41413:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "41386:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "41395:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "41382:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "41382:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "41407:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "41378:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41378:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "41375:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "41436:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "41456:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "41450:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41450:16:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "41440:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "41475:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "41485:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "41479:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "41530:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "41539:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "41542:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "41532:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "41532:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "41532:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "41518:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "41526:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "41515:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41515:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "41512:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "41555:32:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "41569:9:81"
                      },
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "41580:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "41565:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41565:22:81"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "41559:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "41635:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "41644:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "41647:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "41637:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "41637:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "41637:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_2",
                                "nodeType": "YulIdentifier",
                                "src": "41614:2:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "41618:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "41610:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "41610:13:81"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "41625:7:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "41606:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "41606:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "41599:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41599:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "41596:55:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "41660:19:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "41676:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "41670:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41670:9:81"
                  },
                  "variables": [
                    {
                      "name": "_3",
                      "nodeType": "YulTypedName",
                      "src": "41664:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "41688:14:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "41698:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_4",
                      "nodeType": "YulTypedName",
                      "src": "41692:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "41711:53:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "41761:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "array_allocation_size_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "41721:39:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41721:43:81"
                  },
                  "variables": [
                    {
                      "name": "_5",
                      "nodeType": "YulTypedName",
                      "src": "41715:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "41773:23:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "41793:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "41787:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41787:9:81"
                  },
                  "variables": [
                    {
                      "name": "memPtr",
                      "nodeType": "YulTypedName",
                      "src": "41777:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "41825:6:81"
                      },
                      {
                        "name": "_5",
                        "nodeType": "YulIdentifier",
                        "src": "41833:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "finalize_allocation",
                      "nodeType": "YulIdentifier",
                      "src": "41805:19:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41805:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "41805:31:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "41845:17:81",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "41856:6:81"
                  },
                  "variables": [
                    {
                      "name": "dst",
                      "nodeType": "YulTypedName",
                      "src": "41849:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "41878:6:81"
                      },
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "41886:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "41871:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41871:18:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "41871:18:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "41898:22:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "41909:6:81"
                      },
                      {
                        "name": "_4",
                        "nodeType": "YulIdentifier",
                        "src": "41917:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "41905:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41905:15:81"
                  },
                  "variableNames": [
                    {
                      "name": "dst",
                      "nodeType": "YulIdentifier",
                      "src": "41898:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "41929:42:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_2",
                            "nodeType": "YulIdentifier",
                            "src": "41951:2:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "41959:1:81",
                                "type": "",
                                "value": "5"
                              },
                              {
                                "name": "_3",
                                "nodeType": "YulIdentifier",
                                "src": "41962:2:81"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "41955:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "41955:10:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "41947:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "41947:19:81"
                      },
                      {
                        "name": "_4",
                        "nodeType": "YulIdentifier",
                        "src": "41968:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "41943:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41943:28:81"
                  },
                  "variables": [
                    {
                      "name": "srcEnd",
                      "nodeType": "YulTypedName",
                      "src": "41933:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "42003:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "42012:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "42015:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "42005:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "42005:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "42005:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "41986:6:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "41994:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "41983:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "41983:19:81"
                  },
                  "nodeType": "YulIf",
                  "src": "41980:39:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "42028:22:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "42043:2:81"
                      },
                      {
                        "name": "_4",
                        "nodeType": "YulIdentifier",
                        "src": "42047:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "42039:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42039:11:81"
                  },
                  "variables": [
                    {
                      "name": "src",
                      "nodeType": "YulTypedName",
                      "src": "42032:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "42115:154:81",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "42129:23:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "src",
                              "nodeType": "YulIdentifier",
                              "src": "42148:3:81"
                            }
                          ],
                          "functionName": {
                            "name": "mload",
                            "nodeType": "YulIdentifier",
                            "src": "42142:5:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "42142:10:81"
                        },
                        "variables": [
                          {
                            "name": "value",
                            "nodeType": "YulTypedName",
                            "src": "42133:5:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "value",
                              "nodeType": "YulIdentifier",
                              "src": "42190:5:81"
                            }
                          ],
                          "functionName": {
                            "name": "validator_revert_address",
                            "nodeType": "YulIdentifier",
                            "src": "42165:24:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "42165:31:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "42165:31:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "42216:3:81"
                            },
                            {
                              "name": "value",
                              "nodeType": "YulIdentifier",
                              "src": "42221:5:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "42209:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "42209:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "42209:18:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "42240:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "42251:3:81"
                            },
                            {
                              "name": "_4",
                              "nodeType": "YulIdentifier",
                              "src": "42256:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "42247:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "42247:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "dst",
                            "nodeType": "YulIdentifier",
                            "src": "42240:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "src",
                        "nodeType": "YulIdentifier",
                        "src": "42070:3:81"
                      },
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "42075:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "42067:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42067:15:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "42083:23:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "42085:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "src",
                              "nodeType": "YulIdentifier",
                              "src": "42096:3:81"
                            },
                            {
                              "name": "_4",
                              "nodeType": "YulIdentifier",
                              "src": "42101:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "42092:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "42092:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "src",
                            "nodeType": "YulIdentifier",
                            "src": "42085:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "42063:3:81",
                    "statements": []
                  },
                  "src": "42059:210:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "42278:16:81",
                  "value": {
                    "name": "memPtr",
                    "nodeType": "YulIdentifier",
                    "src": "42288:6:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "42278:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "42303:41:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "42329:9:81"
                          },
                          {
                            "name": "_4",
                            "nodeType": "YulIdentifier",
                            "src": "42340:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "42325:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "42325:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "42319:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42319:25:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "42307:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "42373:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "42382:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "42385:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "42375:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "42375:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "42375:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "42359:8:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "42369:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "42356:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42356:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "42353:36:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "42398:84:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "42452:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "42463:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "42448:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "42448:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "42474:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_uint256_dyn_fromMemory",
                      "nodeType": "YulIdentifier",
                      "src": "42408:39:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42408:74:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "42398: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": "41323:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "41334:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "41346:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "41354:6:81",
                "type": ""
              }
            ],
            "src": "41209:1279:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "42667:167:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "42684:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "42695:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "42677:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42677:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "42677:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "42718:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "42729:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "42714:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "42714:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "42734:2:81",
                        "type": "",
                        "value": "17"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "42707:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42707:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "42707:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "42757:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "42768:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "42753:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "42753:18:81"
                      },
                      {
                        "hexValue": "496e76616c696420657874656e73696f6e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "42773:19:81",
                        "type": "",
                        "value": "Invalid extension"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "42746:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42746:47:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "42746:47:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "42802:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "42814:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "42825:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "42810:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "42810:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "42802:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_39736ad8edb82cab8fab418c447e0b8998fe764b7748a15a1ca217315b23256b__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "42644:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "42658:4:81",
                "type": ""
              }
            ],
            "src": "42493:341:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "43013:165:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "43030:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "43041:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "43023:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43023:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "43023:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "43064:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "43075:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "43060:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "43060:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "43080:2:81",
                        "type": "",
                        "value": "15"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "43053:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43053:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "43053:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "43103:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "43114:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "43099:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "43099:18:81"
                      },
                      {
                        "hexValue": "496e76616c69642061646472657373",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "43119:17:81",
                        "type": "",
                        "value": "Invalid address"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "43092:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43092:45:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "43092:45:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "43146:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "43158:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "43169:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "43154:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43154:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "43146:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_1462473b7a4b33d32b109b815fd2324d00c9e5839b707ecf16d0ab5744f99226__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "42990:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "43004:4:81",
                "type": ""
              }
            ],
            "src": "42839:339:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "43312:119:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "43322:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "43334:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "43345:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "43330:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43330:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "43322:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "43364:9:81"
                      },
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "43375:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "43357:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43357:25:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "43357:25:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "43402:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "43413:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "43398:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "43398:18:81"
                      },
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "43418:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "43391:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43391:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "43391:34:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "43273:9:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "43284:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "43292:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "43303:4:81",
                "type": ""
              }
            ],
            "src": "43183:248:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "43610:173:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "43627:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "43638:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "43620:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43620:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "43620:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "43661:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "43672:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "43657:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "43657:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "43677:2:81",
                        "type": "",
                        "value": "23"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "43650:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43650:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "43650:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "43700:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "43711:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "43696:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "43696:18:81"
                      },
                      {
                        "hexValue": "496e76616c696420746f74616c20726f79616c74696573",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "43716:25:81",
                        "type": "",
                        "value": "Invalid total royalties"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "43689:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43689:53:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "43689:53:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "43751:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "43763:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "43774:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "43759:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43759:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "43751:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_bdeae8abc7e2f0e6881f3618c066b1b8be917729ca4a34e4ef407f79dd9f7a90__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "43587:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "43601:4:81",
                "type": ""
              }
            ],
            "src": "43436:347:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "43866:177:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "43912:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "43921:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "43924:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "43914:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "43914:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "43914:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "43887:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "43896:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "43883:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "43883:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "43908:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "43879:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43879:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "43876:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "43937:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "43963:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "43950:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43950:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "43941:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "44007:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "43982:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "43982:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "43982:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "44022:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "44032:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "44022:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_address_payable",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "43832:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "43843:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "43855:6:81",
                "type": ""
              }
            ],
            "src": "43788:255:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "44080:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "44097:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "44104:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "44109:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "44100:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44100:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "44090:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44090:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "44090:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "44137:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "44140:4:81",
                        "type": "",
                        "value": "0x31"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "44130:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44130:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "44130:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "44161:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "44164:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "44154:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44154:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "44154:15:81"
                }
              ]
            },
            "name": "panic_error_0x31",
            "nodeType": "YulFunctionDefinition",
            "src": "44048:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "44511:496:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "44521:29:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "44539:3:81",
                            "type": "",
                            "value": "160"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "44544:1:81",
                            "type": "",
                            "value": "1"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "44535:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44535:11:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "44548:1:81",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nodeType": "YulIdentifier",
                      "src": "44531:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44531:19:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "44525:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "44566:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "44581:6:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "44589:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "44577:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44577:15:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "44559:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44559:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "44559:34:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "44613:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "44624:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "44609:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44609:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nodeType": "YulIdentifier",
                            "src": "44633:6:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "44641:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "44629:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44629:15:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "44602:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44602:43:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "44602:43:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "44665:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "44676:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "44661:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44661:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "44681:3:81",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "44654:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44654:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "44654:31:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "44694:71:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "44737:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "44749:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "44760:3:81",
                            "type": "",
                            "value": "160"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "44745:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44745:19:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "44708:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44708:57:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "44698:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "44785:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "44796:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "44781:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44781:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_1",
                            "nodeType": "YulIdentifier",
                            "src": "44805:6:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "44813:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "44801:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44801:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "44774:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44774:50:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "44774:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "44833:58:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "44876:6:81"
                      },
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "44884:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "44847:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44847:44:81"
                  },
                  "variables": [
                    {
                      "name": "tail_2",
                      "nodeType": "YulTypedName",
                      "src": "44837:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "44911:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "44922:3:81",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "44907:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44907:19:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_2",
                            "nodeType": "YulIdentifier",
                            "src": "44932:6:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "44940:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "44928:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "44928:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "44900:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44900:51:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "44900:51:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "44960:41:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value4",
                        "nodeType": "YulIdentifier",
                        "src": "44986:6:81"
                      },
                      {
                        "name": "tail_2",
                        "nodeType": "YulIdentifier",
                        "src": "44994:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string",
                      "nodeType": "YulIdentifier",
                      "src": "44968:17:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "44968:33:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "44960:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "44448:9:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "44459:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "44467:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "44475:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "44483:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "44491:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "44502:4:81",
                "type": ""
              }
            ],
            "src": "44180:827:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "45092:169:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "45138:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "45147:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "45150:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "45140:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "45140:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "45140:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "45113:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "45122:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "45109:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "45109:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "45134:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "45105:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45105:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "45102:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "45163:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "45182:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "45176:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45176:16:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "45167:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "45225:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bytes4",
                      "nodeType": "YulIdentifier",
                      "src": "45201:23:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45201:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "45201:30:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "45240:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "45250:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "45240:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bytes4_fromMemory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "45058:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "45069:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "45081:6:81",
                "type": ""
              }
            ],
            "src": "45012:249:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "45309:136:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "45354:85:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "45383:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "45386:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "45389:1:81",
                              "type": "",
                              "value": "4"
                            }
                          ],
                          "functionName": {
                            "name": "returndatacopy",
                            "nodeType": "YulIdentifier",
                            "src": "45368:14:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "45368:23:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "45368:23:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "45404:25:81",
                        "value": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "45415:3:81",
                              "type": "",
                              "value": "224"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "45426:1:81",
                                  "type": "",
                                  "value": "0"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nodeType": "YulIdentifier",
                                "src": "45420:5:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "45420:8:81"
                            }
                          ],
                          "functionName": {
                            "name": "shr",
                            "nodeType": "YulIdentifier",
                            "src": "45411:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "45411:18:81"
                        },
                        "variableNames": [
                          {
                            "name": "sig",
                            "nodeType": "YulIdentifier",
                            "src": "45404:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [],
                        "functionName": {
                          "name": "returndatasize",
                          "nodeType": "YulIdentifier",
                          "src": "45325:14:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "45325:16:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "45343:1:81",
                        "type": "",
                        "value": "3"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "45322:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45322:23:81"
                  },
                  "nodeType": "YulIf",
                  "src": "45319:120:81"
                }
              ]
            },
            "name": "return_data_selector",
            "nodeType": "YulFunctionDefinition",
            "returnVariables": [
              {
                "name": "sig",
                "nodeType": "YulTypedName",
                "src": "45301:3:81",
                "type": ""
              }
            ],
            "src": "45266:179:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "45497:624:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "45537:9:81",
                    "statements": [
                      {
                        "nodeType": "YulLeave",
                        "src": "45539:5:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [],
                        "functionName": {
                          "name": "returndatasize",
                          "nodeType": "YulIdentifier",
                          "src": "45513:14:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "45513:16:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "45531:4:81",
                        "type": "",
                        "value": "0x44"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "45510:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45510:26:81"
                  },
                  "nodeType": "YulIf",
                  "src": "45507:39:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "45555:21:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "45573:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "45567:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45567:9:81"
                  },
                  "variables": [
                    {
                      "name": "data",
                      "nodeType": "YulTypedName",
                      "src": "45559:4:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "45585:16:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "45599:1:81",
                        "type": "",
                        "value": "3"
                      }
                    ],
                    "functionName": {
                      "name": "not",
                      "nodeType": "YulIdentifier",
                      "src": "45595:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45595:6:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "45589:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "data",
                        "nodeType": "YulIdentifier",
                        "src": "45625:4:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "45631:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [],
                            "functionName": {
                              "name": "returndatasize",
                              "nodeType": "YulIdentifier",
                              "src": "45638:14:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "45638:16:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "45656:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "45634:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "45634:25:81"
                      }
                    ],
                    "functionName": {
                      "name": "returndatacopy",
                      "nodeType": "YulIdentifier",
                      "src": "45610:14:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45610:50:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "45610:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "45669:25:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "data",
                        "nodeType": "YulIdentifier",
                        "src": "45689:4:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "45683:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45683:11:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "45673:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "45703:26:81",
                  "value": {
                    "arguments": [],
                    "functionName": {
                      "name": "returndatasize",
                      "nodeType": "YulIdentifier",
                      "src": "45713:14:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45713:16:81"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "45707:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "45738:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "45748:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_3",
                      "nodeType": "YulTypedName",
                      "src": "45742:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "45824:9:81",
                    "statements": [
                      {
                        "nodeType": "YulLeave",
                        "src": "45826:5:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "45784:6:81"
                          },
                          {
                            "name": "_3",
                            "nodeType": "YulIdentifier",
                            "src": "45792:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nodeType": "YulIdentifier",
                          "src": "45781:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "45781:14:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "45804:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "45812:4:81",
                                "type": "",
                                "value": "0x24"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "45800:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "45800:17:81"
                          },
                          {
                            "name": "_2",
                            "nodeType": "YulIdentifier",
                            "src": "45819:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nodeType": "YulIdentifier",
                          "src": "45797:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "45797:25:81"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nodeType": "YulIdentifier",
                      "src": "45778:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45778:45:81"
                  },
                  "nodeType": "YulIf",
                  "src": "45775:58:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "45842:28:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "data",
                        "nodeType": "YulIdentifier",
                        "src": "45857:4:81"
                      },
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "45863:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "45853:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45853:17:81"
                  },
                  "variables": [
                    {
                      "name": "msg",
                      "nodeType": "YulTypedName",
                      "src": "45846:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "45879:24:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "msg",
                        "nodeType": "YulIdentifier",
                        "src": "45899:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "45893:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45893:10:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "45883:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "45930:9:81",
                    "statements": [
                      {
                        "nodeType": "YulLeave",
                        "src": "45932:5:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "45918:6:81"
                      },
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "45926:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "45915:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45915:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "45912:27:81"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "46021:9:81",
                    "statements": [
                      {
                        "nodeType": "YulLeave",
                        "src": "46023:5:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "msg",
                                "nodeType": "YulIdentifier",
                                "src": "45962:3:81"
                              },
                              {
                                "name": "length",
                                "nodeType": "YulIdentifier",
                                "src": "45967:6:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "45958:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "45958:16:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "45976:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "45954:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "45954:27:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "data",
                                "nodeType": "YulIdentifier",
                                "src": "45991:4:81"
                              },
                              {
                                "arguments": [],
                                "functionName": {
                                  "name": "returndatasize",
                                  "nodeType": "YulIdentifier",
                                  "src": "45997:14:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "45997:16:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "45987:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "45987:27:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "46016:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "45983:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "45983:36:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "45951:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "45951:69:81"
                  },
                  "nodeType": "YulIf",
                  "src": "45948:82:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "data",
                        "nodeType": "YulIdentifier",
                        "src": "46059:4:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "46073:6:81"
                              },
                              {
                                "name": "length",
                                "nodeType": "YulIdentifier",
                                "src": "46081:6:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "46069:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "46069:19:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "46090:4:81",
                            "type": "",
                            "value": "0x20"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "46065:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "46065:30:81"
                      }
                    ],
                    "functionName": {
                      "name": "finalize_allocation",
                      "nodeType": "YulIdentifier",
                      "src": "46039:19:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "46039:57:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "46039:57:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "46105:10:81",
                  "value": {
                    "name": "msg",
                    "nodeType": "YulIdentifier",
                    "src": "46112:3:81"
                  },
                  "variableNames": [
                    {
                      "name": "ret",
                      "nodeType": "YulIdentifier",
                      "src": "46105:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "try_decode_error_message",
            "nodeType": "YulFunctionDefinition",
            "returnVariables": [
              {
                "name": "ret",
                "nodeType": "YulTypedName",
                "src": "45489:3:81",
                "type": ""
              }
            ],
            "src": "45450:671:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "46300:242:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "46317:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "46328:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "46310:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "46310:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "46310:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "46351:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "46362:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "46347:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "46347:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "46367:2:81",
                        "type": "",
                        "value": "52"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "46340:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "46340:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "46340:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "46390:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "46401:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "46386:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "46386:18:81"
                      },
                      {
                        "hexValue": "455243313135353a207472616e7366657220746f206e6f6e2d45524331313535",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "46406:34:81",
                        "type": "",
                        "value": "ERC1155: transfer to non-ERC1155"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "46379:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "46379:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "46379:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "46461:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "46472:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "46457:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "46457:18:81"
                      },
                      {
                        "hexValue": "526563656976657220696d706c656d656e746572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "46477:22:81",
                        "type": "",
                        "value": "Receiver implementer"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "46450:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "46450:50:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "46450:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "46509:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "46521:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "46532:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "46517:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "46517:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "46509:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_f591f7b75ffc499e05f8b34c3364b2eceff651378d9549db1d5d67c0d8255c5d__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "46277:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "46291:4:81",
                "type": ""
              }
            ],
            "src": "46126:416:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "46721:230:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "46738:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "46749:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "46731:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "46731:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "46731:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "46772:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "46783:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "46768:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "46768:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "46788:2:81",
                        "type": "",
                        "value": "40"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "46761:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "46761:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "46761:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "46811:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "46822:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "46807:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "46807:18:81"
                      },
                      {
                        "hexValue": "455243313135353a204552433131353552656365697665722072656a65637465",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "46827:34:81",
                        "type": "",
                        "value": "ERC1155: ERC1155Receiver rejecte"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "46800:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "46800:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "46800:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "46882:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "46893:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "46878:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "46878:18:81"
                      },
                      {
                        "hexValue": "6420746f6b656e73",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "46898:10:81",
                        "type": "",
                        "value": "d tokens"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "46871:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "46871:38:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "46871:38:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "46918:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "46930:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "46941:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "46926:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "46926:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "46918:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "46698:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "46712:4:81",
                "type": ""
              }
            ],
            "src": "46547:404:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "47130:225:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "47147:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "47158:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "47140:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "47140:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "47140:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "47181:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "47192:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "47177:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "47177:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "47197:2:81",
                        "type": "",
                        "value": "35"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "47170:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "47170:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "47170:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "47220:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "47231:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "47216:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "47216:18:81"
                      },
                      {
                        "hexValue": "455243313135353a206275726e2066726f6d20746865207a65726f2061646472",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "47236:34:81",
                        "type": "",
                        "value": "ERC1155: burn from the zero addr"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "47209:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "47209:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "47209:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "47291:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "47302:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "47287:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "47287:18:81"
                      },
                      {
                        "hexValue": "657373",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "47307:5:81",
                        "type": "",
                        "value": "ess"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "47280:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "47280:33:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "47280:33:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "47322:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "47334:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "47345:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "47330:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "47330:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "47322:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_87fd4aee52f5758d127cd9704d5ffef70f36ed1e87eb99b6f40e37a25c79a76a__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "47107:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "47121:4:81",
                "type": ""
              }
            ],
            "src": "46956:399:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "47534:226:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "47551:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "47562:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "47544:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "47544:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "47544:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "47585:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "47596:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "47581:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "47581:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "47601:2:81",
                        "type": "",
                        "value": "36"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "47574:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "47574:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "47574:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "47624:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "47635:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "47620:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "47620:18:81"
                      },
                      {
                        "hexValue": "455243313135353a206275726e20616d6f756e7420657863656564732062616c",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "47640:34:81",
                        "type": "",
                        "value": "ERC1155: burn amount exceeds bal"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "47613:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "47613:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "47613:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "47695:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "47706:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "47691:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "47691:18:81"
                      },
                      {
                        "hexValue": "616e6365",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "47711:6:81",
                        "type": "",
                        "value": "ance"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "47684:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "47684:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "47684:34:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "47727:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "47739:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "47750:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "47735:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "47735:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "47727:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_294a5de01910e2350ff231c633ae2d453ed6b1b72c75506234b7aace63eae685__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "47511:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "47525:4:81",
                "type": ""
              }
            ],
            "src": "47360:400:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "47861:1256:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "47871:24:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "src",
                        "nodeType": "YulIdentifier",
                        "src": "47891:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "47885:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "47885:10:81"
                  },
                  "variables": [
                    {
                      "name": "newLen",
                      "nodeType": "YulTypedName",
                      "src": "47875:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "47938:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "47940:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "47940:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "47940:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "newLen",
                        "nodeType": "YulIdentifier",
                        "src": "47910:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "47918:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "47907:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "47907:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "47904:56:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "slot",
                        "nodeType": "YulIdentifier",
                        "src": "48013:4:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "slot",
                                "nodeType": "YulIdentifier",
                                "src": "48051:4:81"
                              }
                            ],
                            "functionName": {
                              "name": "sload",
                              "nodeType": "YulIdentifier",
                              "src": "48045:5:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "48045:11:81"
                          }
                        ],
                        "functionName": {
                          "name": "extract_byte_array_length",
                          "nodeType": "YulIdentifier",
                          "src": "48019:25:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "48019:38:81"
                      },
                      {
                        "name": "newLen",
                        "nodeType": "YulIdentifier",
                        "src": "48059:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "clean_up_bytearray_end_slots_string_storage",
                      "nodeType": "YulIdentifier",
                      "src": "47969:43:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "47969:97:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "47969:97:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "48075:18:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "48092:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "srcOffset",
                      "nodeType": "YulTypedName",
                      "src": "48079:9:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "48102:23:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "48121:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "srcOffset_1",
                      "nodeType": "YulTypedName",
                      "src": "48106:11:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "48134:24:81",
                  "value": {
                    "name": "srcOffset_1",
                    "nodeType": "YulIdentifier",
                    "src": "48147:11:81"
                  },
                  "variableNames": [
                    {
                      "name": "srcOffset",
                      "nodeType": "YulIdentifier",
                      "src": "48134:9:81"
                    }
                  ]
                },
                {
                  "cases": [
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "48204:656:81",
                        "statements": [
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "48218:35:81",
                            "value": {
                              "arguments": [
                                {
                                  "name": "newLen",
                                  "nodeType": "YulIdentifier",
                                  "src": "48237:6:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "48249:2:81",
                                      "type": "",
                                      "value": "31"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "not",
                                    "nodeType": "YulIdentifier",
                                    "src": "48245:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "48245:7:81"
                                }
                              ],
                              "functionName": {
                                "name": "and",
                                "nodeType": "YulIdentifier",
                                "src": "48233:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "48233:20:81"
                            },
                            "variables": [
                              {
                                "name": "loopEnd",
                                "nodeType": "YulTypedName",
                                "src": "48222:7:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "48266:49:81",
                            "value": {
                              "arguments": [
                                {
                                  "name": "slot",
                                  "nodeType": "YulIdentifier",
                                  "src": "48310:4:81"
                                }
                              ],
                              "functionName": {
                                "name": "array_dataslot_string_storage",
                                "nodeType": "YulIdentifier",
                                "src": "48280:29:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "48280:35:81"
                            },
                            "variables": [
                              {
                                "name": "dstPtr",
                                "nodeType": "YulTypedName",
                                "src": "48270:6:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "48328:10:81",
                            "value": {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "48337:1:81",
                              "type": "",
                              "value": "0"
                            },
                            "variables": [
                              {
                                "name": "i",
                                "nodeType": "YulTypedName",
                                "src": "48332:1:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "48415:172:81",
                              "statements": [
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "name": "dstPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "48440:6:81"
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "arguments": [
                                              {
                                                "name": "src",
                                                "nodeType": "YulIdentifier",
                                                "src": "48458:3:81"
                                              },
                                              {
                                                "name": "srcOffset",
                                                "nodeType": "YulIdentifier",
                                                "src": "48463:9:81"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "add",
                                              "nodeType": "YulIdentifier",
                                              "src": "48454:3:81"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "48454:19:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "mload",
                                          "nodeType": "YulIdentifier",
                                          "src": "48448:5:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "48448:26:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sstore",
                                      "nodeType": "YulIdentifier",
                                      "src": "48433:6:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "48433:42:81"
                                  },
                                  "nodeType": "YulExpressionStatement",
                                  "src": "48433:42:81"
                                },
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "48492:24:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "dstPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "48506:6:81"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "48514:1:81",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "48502:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "48502:14:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "dstPtr",
                                      "nodeType": "YulIdentifier",
                                      "src": "48492:6:81"
                                    }
                                  ]
                                },
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "48533:40:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "srcOffset",
                                        "nodeType": "YulIdentifier",
                                        "src": "48550:9:81"
                                      },
                                      {
                                        "name": "srcOffset_1",
                                        "nodeType": "YulIdentifier",
                                        "src": "48561:11:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "48546:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "48546:27:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "srcOffset",
                                      "nodeType": "YulIdentifier",
                                      "src": "48533:9:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "condition": {
                              "arguments": [
                                {
                                  "name": "i",
                                  "nodeType": "YulIdentifier",
                                  "src": "48362:1:81"
                                },
                                {
                                  "name": "loopEnd",
                                  "nodeType": "YulIdentifier",
                                  "src": "48365:7:81"
                                }
                              ],
                              "functionName": {
                                "name": "lt",
                                "nodeType": "YulIdentifier",
                                "src": "48359:2:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "48359:14:81"
                            },
                            "nodeType": "YulForLoop",
                            "post": {
                              "nodeType": "YulBlock",
                              "src": "48374:28:81",
                              "statements": [
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "48376:24:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "i",
                                        "nodeType": "YulIdentifier",
                                        "src": "48385:1:81"
                                      },
                                      {
                                        "name": "srcOffset_1",
                                        "nodeType": "YulIdentifier",
                                        "src": "48388:11:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "48381:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "48381:19:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "i",
                                      "nodeType": "YulIdentifier",
                                      "src": "48376:1:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "pre": {
                              "nodeType": "YulBlock",
                              "src": "48355:3:81",
                              "statements": []
                            },
                            "src": "48351:236:81"
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "48635:166:81",
                              "statements": [
                                {
                                  "nodeType": "YulVariableDeclaration",
                                  "src": "48653:43:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "name": "src",
                                            "nodeType": "YulIdentifier",
                                            "src": "48680:3:81"
                                          },
                                          {
                                            "name": "srcOffset",
                                            "nodeType": "YulIdentifier",
                                            "src": "48685:9:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "add",
                                          "nodeType": "YulIdentifier",
                                          "src": "48676:3:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "48676:19:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "mload",
                                      "nodeType": "YulIdentifier",
                                      "src": "48670:5:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "48670:26:81"
                                  },
                                  "variables": [
                                    {
                                      "name": "lastValue",
                                      "nodeType": "YulTypedName",
                                      "src": "48657:9:81",
                                      "type": ""
                                    }
                                  ]
                                },
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "name": "dstPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "48720:6:81"
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "name": "lastValue",
                                            "nodeType": "YulIdentifier",
                                            "src": "48732:9:81"
                                          },
                                          {
                                            "arguments": [
                                              {
                                                "arguments": [
                                                  {
                                                    "arguments": [
                                                      {
                                                        "arguments": [
                                                          {
                                                            "kind": "number",
                                                            "nodeType": "YulLiteral",
                                                            "src": "48759:1:81",
                                                            "type": "",
                                                            "value": "3"
                                                          },
                                                          {
                                                            "name": "newLen",
                                                            "nodeType": "YulIdentifier",
                                                            "src": "48762:6:81"
                                                          }
                                                        ],
                                                        "functionName": {
                                                          "name": "shl",
                                                          "nodeType": "YulIdentifier",
                                                          "src": "48755:3:81"
                                                        },
                                                        "nodeType": "YulFunctionCall",
                                                        "src": "48755:14:81"
                                                      },
                                                      {
                                                        "kind": "number",
                                                        "nodeType": "YulLiteral",
                                                        "src": "48771:3:81",
                                                        "type": "",
                                                        "value": "248"
                                                      }
                                                    ],
                                                    "functionName": {
                                                      "name": "and",
                                                      "nodeType": "YulIdentifier",
                                                      "src": "48751:3:81"
                                                    },
                                                    "nodeType": "YulFunctionCall",
                                                    "src": "48751:24:81"
                                                  },
                                                  {
                                                    "arguments": [
                                                      {
                                                        "kind": "number",
                                                        "nodeType": "YulLiteral",
                                                        "src": "48781:1:81",
                                                        "type": "",
                                                        "value": "0"
                                                      }
                                                    ],
                                                    "functionName": {
                                                      "name": "not",
                                                      "nodeType": "YulIdentifier",
                                                      "src": "48777:3:81"
                                                    },
                                                    "nodeType": "YulFunctionCall",
                                                    "src": "48777:6:81"
                                                  }
                                                ],
                                                "functionName": {
                                                  "name": "shr",
                                                  "nodeType": "YulIdentifier",
                                                  "src": "48747:3:81"
                                                },
                                                "nodeType": "YulFunctionCall",
                                                "src": "48747:37:81"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "not",
                                              "nodeType": "YulIdentifier",
                                              "src": "48743:3:81"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "48743:42:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "and",
                                          "nodeType": "YulIdentifier",
                                          "src": "48728:3:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "48728:58:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sstore",
                                      "nodeType": "YulIdentifier",
                                      "src": "48713:6:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "48713:74:81"
                                  },
                                  "nodeType": "YulExpressionStatement",
                                  "src": "48713:74:81"
                                }
                              ]
                            },
                            "condition": {
                              "arguments": [
                                {
                                  "name": "loopEnd",
                                  "nodeType": "YulIdentifier",
                                  "src": "48606:7:81"
                                },
                                {
                                  "name": "newLen",
                                  "nodeType": "YulIdentifier",
                                  "src": "48615:6:81"
                                }
                              ],
                              "functionName": {
                                "name": "lt",
                                "nodeType": "YulIdentifier",
                                "src": "48603:2:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "48603:19:81"
                            },
                            "nodeType": "YulIf",
                            "src": "48600:201:81"
                          },
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "name": "slot",
                                  "nodeType": "YulIdentifier",
                                  "src": "48821:4:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "48835:1:81",
                                          "type": "",
                                          "value": "1"
                                        },
                                        {
                                          "name": "newLen",
                                          "nodeType": "YulIdentifier",
                                          "src": "48838:6:81"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "shl",
                                        "nodeType": "YulIdentifier",
                                        "src": "48831:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "48831:14:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "48847:1:81",
                                      "type": "",
                                      "value": "1"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "48827:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "48827:22:81"
                                }
                              ],
                              "functionName": {
                                "name": "sstore",
                                "nodeType": "YulIdentifier",
                                "src": "48814:6:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "48814:36:81"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "48814:36:81"
                          }
                        ]
                      },
                      "nodeType": "YulCase",
                      "src": "48197:663:81",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "48202:1:81",
                        "type": "",
                        "value": "1"
                      }
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "48877:234:81",
                        "statements": [
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "48891:14:81",
                            "value": {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "48904:1:81",
                              "type": "",
                              "value": "0"
                            },
                            "variables": [
                              {
                                "name": "value",
                                "nodeType": "YulTypedName",
                                "src": "48895:5:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "48940:67:81",
                              "statements": [
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "48958:35:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "name": "src",
                                            "nodeType": "YulIdentifier",
                                            "src": "48977:3:81"
                                          },
                                          {
                                            "name": "srcOffset",
                                            "nodeType": "YulIdentifier",
                                            "src": "48982:9:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "add",
                                          "nodeType": "YulIdentifier",
                                          "src": "48973:3:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "48973:19:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "mload",
                                      "nodeType": "YulIdentifier",
                                      "src": "48967:5:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "48967:26:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "value",
                                      "nodeType": "YulIdentifier",
                                      "src": "48958:5:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "condition": {
                              "name": "newLen",
                              "nodeType": "YulIdentifier",
                              "src": "48921:6:81"
                            },
                            "nodeType": "YulIf",
                            "src": "48918:89:81"
                          },
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "name": "slot",
                                  "nodeType": "YulIdentifier",
                                  "src": "49027:4:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "value",
                                      "nodeType": "YulIdentifier",
                                      "src": "49086:5:81"
                                    },
                                    {
                                      "name": "newLen",
                                      "nodeType": "YulIdentifier",
                                      "src": "49093:6:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "extract_used_part_and_set_length_of_short_byte_array",
                                    "nodeType": "YulIdentifier",
                                    "src": "49033:52:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "49033:67:81"
                                }
                              ],
                              "functionName": {
                                "name": "sstore",
                                "nodeType": "YulIdentifier",
                                "src": "49020:6:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "49020:81:81"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "49020:81:81"
                          }
                        ]
                      },
                      "nodeType": "YulCase",
                      "src": "48869:242:81",
                      "value": "default"
                    }
                  ],
                  "expression": {
                    "arguments": [
                      {
                        "name": "newLen",
                        "nodeType": "YulIdentifier",
                        "src": "48177:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "48185:2:81",
                        "type": "",
                        "value": "31"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "48174:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "48174:14:81"
                  },
                  "nodeType": "YulSwitch",
                  "src": "48167: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": "47846:4:81",
                "type": ""
              },
              {
                "name": "src",
                "nodeType": "YulTypedName",
                "src": "47852:3:81",
                "type": ""
              }
            ],
            "src": "47765:1352:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "49457:433:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "49474:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "49489:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "49505:3:81",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "49510:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "49501:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "49501:11:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "49514:1:81",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "49497:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "49497:19:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "49485:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "49485:32:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "49467:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "49467:51:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "49467:51:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "49538:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "49549:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "49534:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "49534:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "49554:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "49527:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "49527:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "49527:31:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "49567:71:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "49610:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "49622:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "49633:3:81",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "49618:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "49618:19:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_address_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "49581:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "49581:57:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "49571:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "49658:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "49669:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "49654:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "49654:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_1",
                            "nodeType": "YulIdentifier",
                            "src": "49678:6:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "49686:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "49674:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "49674:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "49647:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "49647:50:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "49647:50:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "49706:58:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "49749:6:81"
                      },
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "49757:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "49720:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "49720:44:81"
                  },
                  "variables": [
                    {
                      "name": "tail_2",
                      "nodeType": "YulTypedName",
                      "src": "49710:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "49784:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "49795:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "49780:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "49780:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_2",
                            "nodeType": "YulIdentifier",
                            "src": "49804:6:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "49812:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "49800:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "49800:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "49773:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "49773:50:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "49773:50:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "49832:52:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "49869:6:81"
                      },
                      {
                        "name": "tail_2",
                        "nodeType": "YulIdentifier",
                        "src": "49877:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "49840:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "49840:44:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "49832:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_address_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_address_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "49402:9:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "49413:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "49421:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "49429:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "49437:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "49448:4:81",
                "type": ""
              }
            ],
            "src": "49122:768:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "50126:330:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "50136:29:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "50154:3:81",
                            "type": "",
                            "value": "160"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "50159:1:81",
                            "type": "",
                            "value": "1"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "50150:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "50150:11:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "50163:1:81",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nodeType": "YulIdentifier",
                      "src": "50146:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "50146:19:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "50140:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "50181:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "50196:6:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "50204:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "50192:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "50192:15:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "50174:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "50174:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "50174:34:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "50228:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "50239:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "50224:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "50224:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nodeType": "YulIdentifier",
                            "src": "50248:6:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "50256:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "50244:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "50244:15:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "50217:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "50217:43:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "50217:43:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "50280:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "50291:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "50276:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "50276:18:81"
                      },
                      {
                        "name": "value2",
                        "nodeType": "YulIdentifier",
                        "src": "50296:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "50269:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "50269:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "50269:34:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "50323:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "50334:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "50319:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "50319:18:81"
                      },
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "50339:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "50312:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "50312:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "50312:34:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "50366:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "50377:3:81",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "50362:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "50362:19:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "50383:3:81",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "50355:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "50355:32:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "50355:32:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "50396:54:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value4",
                        "nodeType": "YulIdentifier",
                        "src": "50422:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "50434:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "50445:3:81",
                            "type": "",
                            "value": "160"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "50430:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "50430:19:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_string",
                      "nodeType": "YulIdentifier",
                      "src": "50404:17:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "50404:46:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "50396:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "50063:9:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "50074:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "50082:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "50090:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "50098:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "50106:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "50117:4:81",
                "type": ""
              }
            ],
            "src": "49895:561:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "50560:103:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "50570:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "50582:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "50593:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "50578:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "50578:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "50570:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "50612:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "50627:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "50639:3:81",
                                "type": "",
                                "value": "224"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "50644:10:81",
                                "type": "",
                                "value": "0xffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "50635:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "50635:20:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "50623:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "50623:33:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "50605:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "50605:52:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "50605:52:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "50529:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "50540:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "50551:4:81",
                "type": ""
              }
            ],
            "src": "50461:202:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "50981:433:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "50991:29:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "51009:3:81",
                            "type": "",
                            "value": "160"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "51014:1:81",
                            "type": "",
                            "value": "1"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "51005:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "51005:11:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "51018:1:81",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nodeType": "YulIdentifier",
                      "src": "51001:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "51001:19:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "50995:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "51036:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "51051:6:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "51059:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "51047:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "51047:15:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "51029:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "51029:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "51029:34:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "51083:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "51094:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "51079:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "51079:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value1",
                            "nodeType": "YulIdentifier",
                            "src": "51103:6:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "51111:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "51099:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "51099:15:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "51072:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "51072:43:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "51072:43:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "51135:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "51146:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "51131:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "51131:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value2",
                            "nodeType": "YulIdentifier",
                            "src": "51155:6:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "51163:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "51151:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "51151:15:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "51124:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "51124:43:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "51124:43:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "51187:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "51198:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "51183:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "51183:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "51203:3:81",
                        "type": "",
                        "value": "160"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "51176:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "51176:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "51176:31:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "51216:71:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value3",
                        "nodeType": "YulIdentifier",
                        "src": "51259:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "51271:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "51282:3:81",
                            "type": "",
                            "value": "160"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "51267:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "51267:19:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "51230:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "51230:57:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "51220:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "51307:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "51318:3:81",
                            "type": "",
                            "value": "128"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "51303:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "51303:19:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "tail_1",
                            "nodeType": "YulIdentifier",
                            "src": "51328:6:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "51336:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "51324:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "51324:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "51296:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "51296:51:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "51296:51:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "51356:52:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value4",
                        "nodeType": "YulIdentifier",
                        "src": "51393:6:81"
                      },
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "51401:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_encode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "51364:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "51364:44:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "51356:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_address_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_address_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "50918:9:81",
                "type": ""
              },
              {
                "name": "value4",
                "nodeType": "YulTypedName",
                "src": "50929:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "50937:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "50945:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "50953:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "50961:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "50972:4:81",
                "type": ""
              }
            ],
            "src": "50668:746:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "51497:167:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "51543:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "51552:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "51555:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "51545:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "51545:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "51545:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "51518:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "51527:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "51514:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "51514:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "51539:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "51510:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "51510:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "51507:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "51568:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "51587:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "51581:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "51581:16:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "51572:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "51628:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_bool",
                      "nodeType": "YulIdentifier",
                      "src": "51606:21:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "51606:28:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "51606:28:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "51643:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "51653:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "51643:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bool_fromMemory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "51463:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "51474:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "51486:6:81",
                "type": ""
              }
            ],
            "src": "51419:245:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "51843:176:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "51860:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "51871:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "51853:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "51853:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "51853:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "51894:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "51905:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "51890:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "51890:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "51910:2:81",
                        "type": "",
                        "value": "26"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "51883:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "51883:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "51883:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "51933:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "51944:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "51929:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "51929:18:81"
                      },
                      {
                        "hexValue": "457874656e73696f6e20617070726f76616c206661696c757265",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "51949:28:81",
                        "type": "",
                        "value": "Extension approval failure"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "51922:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "51922:56:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "51922:56:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "51987:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "51999:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "52010:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "51995:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "51995:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "51987:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_c3d60d7a20407b9f19afe96408b04a4d7e66044de3966b3dad84a73681c556f2__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "51820:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "51834:4:81",
                "type": ""
              }
            ],
            "src": "51669:350:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "52198:223:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "52215:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "52226:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "52208:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "52208:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "52208:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "52249:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "52260:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "52245:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "52245:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "52265:2:81",
                        "type": "",
                        "value": "33"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "52238:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "52238:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "52238:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "52288:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "52299:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "52284:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "52284:18:81"
                      },
                      {
                        "hexValue": "455243313135353a206d696e7420746f20746865207a65726f20616464726573",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "52304:34:81",
                        "type": "",
                        "value": "ERC1155: mint to the zero addres"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "52277:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "52277:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "52277:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "52359:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "52370:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "52355:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "52355:18:81"
                      },
                      {
                        "hexValue": "73",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "52375:3:81",
                        "type": "",
                        "value": "s"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "52348:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "52348:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "52348:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "52388:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "52400:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "52411:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "52396:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "52396:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "52388:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_ebf031a1b7ee1d0b3a7752b450a3268e8b6c334561b48c1c0ba0f5bac05749f2__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "52175:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "52189:4:81",
                "type": ""
              }
            ],
            "src": "52024:397:81"
          }
        ]
      },
      "contents": "{\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_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_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\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 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_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_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_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 panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function finalize_allocation(memPtr, size)\n    {\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_array_uint256_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(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := calldataload(offset)\n        let _2 := 0x20\n        let _3 := array_allocation_size_array_uint256_dyn(_1)\n        let memPtr := mload(64)\n        finalize_allocation(memPtr, _3)\n        let dst := memPtr\n        mstore(memPtr, _1)\n        dst := add(memPtr, _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, calldataload(src))\n            dst := add(dst, _2)\n        }\n        array := memPtr\n    }\n    function array_allocation_size_bytes(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_bytes(offset, end) -> array\n    {\n        if iszero(slt(add(offset, 0x1f), end)) { revert(0, 0) }\n        let _1 := calldataload(offset)\n        let _2 := array_allocation_size_bytes(_1)\n        let memPtr := mload(64)\n        finalize_allocation(memPtr, _2)\n        mstore(memPtr, _1)\n        if gt(add(add(offset, _1), 0x20), end) { revert(0, 0) }\n        calldatacopy(add(memPtr, 0x20), add(offset, 0x20), _1)\n        mstore(add(add(memPtr, _1), 0x20), 0)\n        array := memPtr\n    }\n    function abi_decode_tuple_t_addresst_addresst_array$_t_uint256_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptrt_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { 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        let offset := calldataload(add(headStart, 64))\n        let _1 := 0xffffffffffffffff\n        if gt(offset, _1) { revert(0, 0) }\n        value2 := abi_decode_array_uint256_dyn(add(headStart, offset), dataEnd)\n        let offset_1 := calldataload(add(headStart, 96))\n        if gt(offset_1, _1) { revert(0, 0) }\n        value3 := abi_decode_array_uint256_dyn(add(headStart, offset_1), dataEnd)\n        let offset_2 := calldataload(add(headStart, 128))\n        if gt(offset_2, _1) { revert(0, 0) }\n        value4 := abi_decode_bytes(add(headStart, offset_2), dataEnd)\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_array_address_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_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        mstore(headStart, 32)\n        tail := abi_encode_array_address_dyn(value0, add(headStart, 32))\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_uint256_$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 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_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_bytes(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_bytes(add(headStart, offset_1), dataEnd)\n    }\n    function abi_decode_tuple_t_array$_t_address_$dyn_memory_ptrt_array$_t_uint256_$dyn_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        let _2 := add(headStart, offset)\n        if iszero(slt(add(_2, 0x1f), dataEnd)) { revert(0, 0) }\n        let _3 := calldataload(_2)\n        let _4 := 0x20\n        let _5 := array_allocation_size_array_uint256_dyn(_3)\n        let memPtr := mload(64)\n        finalize_allocation(memPtr, _5)\n        let dst := memPtr\n        mstore(memPtr, _3)\n        dst := add(memPtr, _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 := calldataload(src)\n            validator_revert_address(value)\n            mstore(dst, value)\n            dst := add(dst, _4)\n        }\n        value0 := memPtr\n        let offset_1 := calldataload(add(headStart, _4))\n        if gt(offset_1, _1) { revert(0, 0) }\n        value1 := abi_decode_array_uint256_dyn(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_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n    {\n        if slt(sub(dataEnd, headStart), 96) { 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        let offset_2 := calldataload(add(headStart, 64))\n        if gt(offset_2, _1) { revert(0, 0) }\n        let value4_1, value5_1 := abi_decode_array_address_payable_dyn_calldata(add(headStart, offset_2), dataEnd)\n        value4 := value4_1\n        value5 := value5_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_array$_t_address_$dyn_calldata_ptrt_array$_t_uint256_$dyn_calldata_ptrt_array$_t_string_calldata_ptr_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4, value5\n    {\n        if slt(sub(dataEnd, headStart), 96) { 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        let offset_2 := calldataload(add(headStart, 64))\n        if gt(offset_2, _1) { revert(0, 0) }\n        let value4_1, value5_1 := abi_decode_array_address_payable_dyn_calldata(add(headStart, offset_2), dataEnd)\n        value4 := value4_1\n        value5 := value5_1\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_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_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_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_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_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_decode_tuple_t_addresst_addresst_uint256t_uint256t_bytes_memory_ptr(headStart, dataEnd) -> value0, value1, value2, value3, value4\n    {\n        if slt(sub(dataEnd, headStart), 160) { 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        value3 := calldataload(add(headStart, 96))\n        let offset := calldataload(add(headStart, 128))\n        if gt(offset, 0xffffffffffffffff) { revert(0, 0) }\n        value4 := abi_decode_bytes(add(headStart, offset), dataEnd)\n    }\n    function abi_encode_tuple_t_stringliteral_415a1b99e1fd4a18cf87c08995f5a9130182e8d76e9c17c497bfebaaef9265ad__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 42)\n        mstore(add(headStart, 64), \"ERC1155: address zero is not a v\")\n        mstore(add(headStart, 96), \"alid owner\")\n        tail := add(headStart, 128)\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_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_47c72b42072ed6c647dec3a0a5c88bec44d3e901c64659bff94ecce0a0323156__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), \"ERC1155: caller is not token own\")\n        mstore(add(headStart, 96), \"er 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 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_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_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_e155f5d69798c6205436a388a4f3a5fd42f54147b40f4d63a2c8071ff8a9fee5__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), \"ERC1155: accounts and ids length\")\n        mstore(add(headStart, 96), \" mismatch\")\n        tail := add(headStart, 128)\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_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 abi_encode_tuple_t_stringliteral_dc957dacd2461b3477c266babc54966f3d592be89b3105889f0576b7147ce9bb__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), \"Token created by extension\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_3544294527bbdb8eb31f7a9e1779b327bcda38b16dd495ae2505691136d011a2__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 35)\n        mstore(add(headStart, 64), \"Token not created by this extens\")\n        mstore(add(headStart, 96), \"ion\")\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 array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\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 _3 := array_allocation_size_bytes(_2)\n        let memPtr := mload(64)\n        finalize_allocation(memPtr, _3)\n        mstore(memPtr, _2)\n        if gt(add(add(_1, _2), 32), dataEnd) { revert(0, 0) }\n        copy_memory_to_memory_with_cleanup(add(_1, 32), add(memPtr, 32), _2)\n        value0 := memPtr\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 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_array_uint256_dyn_calldata(start, length, pos) -> end\n    {\n        mstore(pos, length)\n        if gt(length, sub(shl(251, 1), 1)) { revert(0, 0) }\n        let length_1 := shl(5, length)\n        calldatacopy(add(pos, 0x20), start, length_1)\n        end := add(add(pos, length_1), 0x20)\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        tail := abi_encode_array_uint256_dyn_calldata(value2, value3, pos)\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_e909e0c9a8f96b4f9af03b716811ece20beb070be416893ed1d50619b5930807__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 40)\n        mstore(add(headStart, 64), \"ERC1155: ids and amounts length \")\n        mstore(add(headStart, 96), \"mismatch\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_6faf1c67f278b07c6771dcf4c315a89c21c0eaed11d9ab3d51774da1cfef545d__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), \"ERC1155: transfer to the zero ad\")\n        mstore(add(headStart, 96), \"dress\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_8ac7e9556b567c1c94bb4daaa3c3a65be5ac686579615210cb910fb8cb8d65bf__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 42)\n        mstore(add(headStart, 64), \"ERC1155: insufficient balance fo\")\n        mstore(add(headStart, 96), \"r transfer\")\n        tail := add(headStart, 128)\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 abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, 64)\n        let tail_1 := abi_encode_array_uint256_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_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_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 checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function abi_encode_tuple_t_stringliteral_949602a3a8201646aa1cfd4aa9eeb487c03c2df49971f81c096e783331adde02__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), \"Mismatched token originators\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_address_t_array$_t_uint256_$dyn_calldata_ptr_t_array$_t_uint256_$dyn_calldata_ptr__to_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), 96)\n        let tail_1 := abi_encode_array_uint256_dyn_calldata(value1, value2, add(headStart, 96))\n        mstore(add(headStart, 64), sub(tail_1, headStart))\n        tail := abi_encode_array_uint256_dyn_calldata(value3, value4, tail_1)\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 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_df9806c6dc743de602e49918a67b580590d69ab768bdb59f977c0a884a91a7c2__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), \"ERC1155: setting approval status\")\n        mstore(add(headStart, 96), \" for self\")\n        tail := add(headStart, 128)\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 _3 := array_allocation_size_array_uint256_dyn(_1)\n        let memPtr := mload(64)\n        finalize_allocation(memPtr, _3)\n        let dst := memPtr\n        mstore(memPtr, _1)\n        dst := add(memPtr, _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 := memPtr\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 _5 := array_allocation_size_array_uint256_dyn(_3)\n        let memPtr := mload(64)\n        finalize_allocation(memPtr, _5)\n        let dst := memPtr\n        mstore(memPtr, _3)\n        dst := add(memPtr, _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 := memPtr\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_tuple_t_stringliteral_39736ad8edb82cab8fab418c447e0b8998fe764b7748a15a1ca217315b23256b__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), \"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_uint256_t_uint256__to_t_uint256_t_uint256__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        tail := add(headStart, 64)\n        mstore(headStart, value0)\n        mstore(add(headStart, 32), value1)\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 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_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__to_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\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), 160)\n        let tail_1 := abi_encode_array_uint256_dyn(value2, add(headStart, 160))\n        mstore(add(headStart, 96), sub(tail_1, headStart))\n        let tail_2 := abi_encode_array_uint256_dyn(value3, tail_1)\n        mstore(add(headStart, 128), sub(tail_2, headStart))\n        tail := abi_encode_string(value4, tail_2)\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 return_data_selector() -> sig\n    {\n        if gt(returndatasize(), 3)\n        {\n            returndatacopy(0, 0, 4)\n            sig := shr(224, mload(0))\n        }\n    }\n    function try_decode_error_message() -> ret\n    {\n        if lt(returndatasize(), 0x44) { leave }\n        let data := mload(64)\n        let _1 := not(3)\n        returndatacopy(data, 4, add(returndatasize(), _1))\n        let offset := mload(data)\n        let _2 := returndatasize()\n        let _3 := 0xffffffffffffffff\n        if or(gt(offset, _3), gt(add(offset, 0x24), _2)) { leave }\n        let msg := add(data, offset)\n        let length := mload(msg)\n        if gt(length, _3) { leave }\n        if gt(add(add(msg, length), 0x20), add(add(data, returndatasize()), _1)) { leave }\n        finalize_allocation(data, add(add(offset, length), 0x20))\n        ret := msg\n    }\n    function abi_encode_tuple_t_stringliteral_f591f7b75ffc499e05f8b34c3364b2eceff651378d9549db1d5d67c0d8255c5d__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 52)\n        mstore(add(headStart, 64), \"ERC1155: transfer to non-ERC1155\")\n        mstore(add(headStart, 96), \"Receiver implementer\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_0587cccad73a80a7f013db13c596f4febc1968dc77e1d3589d5e7a509a3d6503__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 40)\n        mstore(add(headStart, 64), \"ERC1155: ERC1155Receiver rejecte\")\n        mstore(add(headStart, 96), \"d tokens\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_87fd4aee52f5758d127cd9704d5ffef70f36ed1e87eb99b6f40e37a25c79a76a__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 35)\n        mstore(add(headStart, 64), \"ERC1155: burn from the zero addr\")\n        mstore(add(headStart, 96), \"ess\")\n        tail := add(headStart, 128)\n    }\n    function abi_encode_tuple_t_stringliteral_294a5de01910e2350ff231c633ae2d453ed6b1b72c75506234b7aace63eae685__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), \"ERC1155: burn amount exceeds bal\")\n        mstore(add(headStart, 96), \"ance\")\n        tail := add(headStart, 128)\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_address_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_address_t_array$_t_address_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value3, value2, value1, value0) -> tail\n    {\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n        mstore(add(headStart, 32), 128)\n        let tail_1 := abi_encode_array_address_dyn(value1, add(headStart, 128))\n        mstore(add(headStart, 64), sub(tail_1, headStart))\n        let tail_2 := abi_encode_array_uint256_dyn(value2, tail_1)\n        mstore(add(headStart, 96), sub(tail_2, headStart))\n        tail := abi_encode_array_uint256_dyn(value3, tail_2)\n    }\n    function abi_encode_tuple_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__to_t_address_t_address_t_uint256_t_uint256_t_bytes_memory_ptr__fromStack_reversed(headStart, value4, value3, value2, value1, value0) -> tail\n    {\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), value3)\n        mstore(add(headStart, 128), 160)\n        tail := abi_encode_string(value4, add(headStart, 160))\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_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__to_t_address_t_address_t_address_t_array$_t_uint256_$dyn_memory_ptr_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value4, 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), and(value2, _1))\n        mstore(add(headStart, 96), 160)\n        let tail_1 := abi_encode_array_uint256_dyn(value3, add(headStart, 160))\n        mstore(add(headStart, 128), sub(tail_1, headStart))\n        tail := abi_encode_array_uint256_dyn(value4, tail_1)\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    function abi_encode_tuple_t_stringliteral_ebf031a1b7ee1d0b3a7752b450a3268e8b6c334561b48c1c0ba0f5bac05749f2__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), \"ERC1155: mint to the zero addres\")\n        mstore(add(headStart, 96), \"s\")\n        tail := add(headStart, 128)\n    }\n}",
      "id": 81,
      "language": "Yul",
      "name": "#utility.yul"
    }
  ],
  "sourceMap": "309:15002:25:-:0;;;899:1:32;868:32;;309:15002:25;;;;;;;;;-1:-1:-1;1716:1:8;1821:7;:22;426::76;:20;:22::i;:::-;309:15002:25;;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:-;309:15002:25;;;;;;",
  "deployedSourceMap": "309:15002:25:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1618:227:75;;;;;;:::i;:::-;;:::i;:::-;;;616:25:81;;;604:2;589:18;1618:227:75;;;;;;;;788:326:25;;;;;;:::i;:::-;;:::i;:::-;;;1203:14:81;;1196:22;1178:41;;1166:2;1151:18;788:326:25;1038:187:81;2194:126:25;;;;;;:::i;:::-;;:::i;:::-;;2516:89:75;;;:::i;:::-;;;;;;;:::i;13564:125:25:-;;;;;;:::i;:::-;;:::i;13124:138::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;4166:136::-;;;;;;:::i;:::-;;:::i;11859:204::-;;;;;;:::i;:::-;;:::i;13281:115:32:-;13369:20;;-1:-1:-1;;;;;13369:20:32;13281:115;;;;;;;:::i;10622:306:25:-;;;;;;:::i;:::-;;:::i;2025:137:1:-;;;;;;:::i;:::-;;:::i;13332:166:25:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;1757:205:1:-;;;;;;:::i;:::-;;:::i;3685:422:75:-;;;;;;:::i;:::-;;:::i;3784:118:25:-;;;;;;:::i;:::-;;:::i;1402:205::-;;;;;;:::i;:::-;;:::i;1156:261:1:-;;;:::i;:::-;;;;;;;:::i;11593:199:25:-;;;;;;:::i;:::-;;:::i;10994:532::-;;;;;;:::i;:::-;;:::i;2399:157::-;;;;;;:::i;:::-;;:::i;1679:239::-;;;;;;:::i;:::-;;:::i;565:156::-;;;;;;:::i;:::-;;:::i;2002:508:75:-;;;;;;:::i;:::-;;:::i;15179:130:25:-;;;;;;:::i;:::-;;:::i;3369:345::-;;;;;;:::i;:::-;;:::i;2893:158::-;;;;;;:::i;:::-;;:::i;5301:519::-;;;;;;:::i;:::-;;:::i;1485:205:1:-;;;;;;:::i;:::-;;:::i;2071:101:3:-;;;:::i;2635:177:25:-;;;;;;:::i;:::-;;:::i;3998:316:32:-;;;:::i;5898:264:25:-;;;;;;:::i;:::-;;:::i;1441:85:3:-;;;:::i;2611:93:75:-;;;:::i;3974:126:25:-;;;;;;:::i;:::-;;:::i;2772:151:75:-;;;;;;:::i;:::-;;:::i;4368:313:25:-;;;;;;:::i;:::-;;:::i;4915:163:32:-;;;;;;:::i;:::-;;:::i;12139:226:25:-;;;;;;:::i;:::-;;:::i;12898:162::-;;;;;;:::i;:::-;;:::i;12432:169::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;13770:132::-;;;;;;:::i;:::-;13848:7;13874:21;;;:12;:21;;;;;;;13770:132;1993:128;;;;;;:::i;:::-;;:::i;6245:440::-;;;;;;:::i;:::-;;:::i;3126:168::-;;;;;;:::i;:::-;;:::i;2990:166:75:-;;;;;;:::i;:::-;;:::i;4754:160:25:-;;;;;;:::i;:::-;;:::i;3223:390:75:-;;;;;;:::i;:::-;;:::i;2321:198:3:-;;;;;;:::i;:::-;;:::i;4987:236:25:-;;;;;;:::i;:::-;;:::i;562:35:33:-;;596:1;562:35;;1618:227:75;1704:7;-1:-1:-1;;;;;1731:21:75;;1723:76;;;;-1:-1:-1;;;1723:76:75;;22375:2:81;1723:76:75;;;22357:21:81;22414:2;22394:18;;;22387:30;22453:34;22433:18;;;22426:62;-1:-1:-1;;;22504:18:81;;;22497:40;22554:19;;1723:76:75;;;;;;;;;-1:-1:-1;1816:13:75;;;;:9;:13;;;;;;;;-1:-1:-1;;;;;1816:22:75;;;;;;;;;;1618:227;;;;;:::o;788:326:25:-;931:4;954:49;991:11;954:36;:49::i;:::-;:95;;;;1007:42;1037:11;1007:29;:42::i;:::-;954:153;;;;1053:54;1095:11;1053:41;:54::i;2194: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;:::-;2283:30:25::1;2303:9;2283:19;:30::i;:::-;2194:126:::0;:::o;2516:89:75:-;2561:13;2593:5;2586:12;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2516:89;:::o;13564:125:25:-;13632:13;13664:18;13674:7;13664:9;:18::i;13124:138::-;13200:13;13232:23;13247:7;13232:14;:23::i;4166:136::-;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;:::-;4268:27:25::1;4281:7;4290:4;;4268:12;:27::i;:::-;4166:136:::0;;;:::o;11859:204::-;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;:::-;12010:46:25::1;12024:7;12033:9;;12044:11;;12010:13;:46::i;:::-;11859:204:::0;;;;;:::o;10622:306::-;10701:17;10742:24;10758:7;10742:15;:24::i;:::-;10730:36;-1:-1:-1;;;;;;10784:23:25;;10776:58;;;;-1:-1:-1;;;10776:58:25;;23576:2:81;10776:58:25;;;23558:21:81;23615:2;23595:18;;;23588:30;-1:-1:-1;;;23634:18:81;;;23627:52;23696:18;;10776:58:25;23374:346:81;10776:58:25;10853:42;:22;10885:9;10853:31;:42::i;:::-;10852:43;10844:77;;;;-1:-1:-1;;;10844:77:25;;;;;;;:::i;:::-;10622:306;;;:::o;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;13332:166:25:-;13425:7;13434;13460:31;13476:7;13485:5;13460:15;:31::i;:::-;13453:38;;;;13332:166;;;;;;:::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;3685:422:75:-;-1:-1:-1;;;;;3910:18:75;;3918:10;3910:18;;:56;;;3932:34;3949:4;3955:10;3932:16;:34::i;:::-;3889:149;;;;-1:-1:-1;;;3889:149:75;;;;;;;:::i;:::-;4048:52;4071:4;4077:2;4081:3;4086:7;4095:4;4048:22;:52::i;3784:118:25:-;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;:::-;3873:22:25::1;3890:4;;3873:16;:22::i;1402: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;:::-;1515:30:25::1;1535:9;1515:19;:30::i;:::-;1555:45;1574:9;1585:7;;1594:5;1555: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;11593:199:25:-;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;:::-;11727:58:25::1;11758:1;11762:9;;11773:11;;11727:22;:58::i;:::-;11593:199:::0;;;;:::o;10994:532::-;2261:21:8;:19;:21::i;:::-;-1:-1:-1;;;;;11137:21:25;::::1;11148:10;11137:21;::::0;:62:::1;;;11162:37;11179:7;11188:10;11162:16;:37::i;:::-;11129:106;;;::::0;-1:-1:-1;;;11129:106:25;;25096:2:81;11129:106:25::1;::::0;::::1;25078:21:81::0;25135:2;25115:18;;;25108:30;25174:33;25154:18;;;25147:61;25225:18;;11129:106:25::1;24894:355:81::0;11129:106:25::1;11253:33:::0;;::::1;11245:59;;;;-1:-1:-1::0;;;11245:59:25::1;;;;;;;:::i;:::-;11337:1;11318:20:::0;;;11314:159:::1;;11354:39;11360:7;11369:8;;11378:1;11369:11;;;;;;;:::i;:::-;;;;;;;11382:7;;11390:1;11382:10;;;;;;;:::i;:::-;;;;;;;11354:5;:39::i;:::-;11314:159;;;11424:38;11435:7;11444:8;;11424:38;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;::::0;::::1;::::0;;;;-1:-1:-1;;11424:38:25::1;::::0;;::::1;::::0;;::::1;::::0;;;;;;;;;;;;;-1:-1:-1;11454:7:25;;-1:-1:-1;11454:7:25;;;;11424:38;::::1;::::0;11454:7;;11424:38;11454:7;11424:38;::::1;;::::0;::::1;::::0;;;;-1:-1:-1;11424:10:25::1;::::0;-1:-1:-1;;;11424:38:25:i:1;:::-;11482:37;11492:7;11501:8;;11511:7;;11482:9;:37::i;:::-;2303:20:8::0;1716:1;2809:7;:22;2629:209;2399:157:25;2483:18;:16;:18::i;:::-;2511:38;2537:4;;2543:5;2511:25;:38::i;1679: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;:::-;1815:30:25::1;1835:9;1815:19;:30::i;:::-;1855:56;1874:9;1885:7;;1894:16;1855:18;:56::i;565:156::-:0;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;;25798:2:81;3314:201:4;;;25780:21:81;25837:2;25817:18;;;25810:30;25876:34;25856:18;;;25849:62;-1:-1:-1;;;25927:18:81;;;25920:44;25981:19;;3314:201:4;25596: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;658:30:25::1;673:5;680:7;658:14;:30::i;:::-;698: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;26163:36:81;;3710:14:4;;26151:2:81;26136:18;3710:14:4;;;;;;;3258:483;565:156:25;;:::o;2002:508:75:-;2153:16;2212:3;:10;2193:8;:15;:29;2185:83;;;;-1:-1:-1;;;2185:83:75;;26412:2:81;2185:83:75;;;26394:21:81;26451:2;26431:18;;;26424:30;26490:34;26470:18;;;26463:62;-1:-1:-1;;;26541:18:81;;;26534:39;26590:19;;2185:83:75;26210:405:81;2185:83:75;2279:30;2326:8;:15;-1:-1:-1;;;;;2312:30:75;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;2312:30:75;;2279:63;;2358:9;2353:120;2377:8;:15;2373:1;:19;2353:120;;;2432:30;2442:8;2451:1;2442:11;;;;;;;;:::i;:::-;;;;;;;2455:3;2459:1;2455:6;;;;;;;;:::i;:::-;;;;;;;2432:9;:30::i;:::-;2413:13;2427:1;2413:16;;;;;;;;:::i;:::-;;;;;;;;;;:49;2394:3;;;:::i;:::-;;;2353:120;;;-1:-1:-1;2490:13:75;2002:508;-1:-1:-1;;;2002:508:75:o;15179:130:25:-;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;:::-;15268:34:25::1;15292:9;15268:23;:34::i;3369:345::-:0;3480:18;:16;:18::i;:::-;3516:30;;;3508:56;;;;-1:-1:-1;;;3508:56:25;;;;;;;:::i;:::-;3579:6;3574:134;3587:19;;;3574:134;;;3623:43;3645:8;;3654:1;3645:11;;;;;;;:::i;:::-;;;;;;;3658:4;;3663:1;3658:7;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;3623:21;:43::i;:::-;3692:3;;3574:134;;2893:158;2981:18;:16;:18::i;:::-;3009:35;3037:6;;3009:27;:35::i;5301:519::-;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;:::-;5473:6:25::2;5468:288;5481:19:::0;;::::2;5468:288;;;5517:15;5535:8;;5544:1;5535:11;;;;;;;:::i;:::-;;;;;;;5517:29;;5578:1;5568:7;:11;:37;;;;;5594:11;;5583:7;:22;;5568:37;5560:63;;;;-1:-1:-1::0;;;5560:63:25::2;;;;;;;:::i;:::-;5681:1;5645:24;5661:7:::0;5645:15:::2;:24::i;:::-;-1:-1:-1::0;;;;;5645:38:25::2;;5637:77;;;::::0;-1:-1:-1;;;5637:77:25;;27691:2:81;5637:77:25::2;::::0;::::2;27673:21:81::0;27730:2;27710:18;;;27703:30;-1:-1:-1;;;27749:18:81;;;27742:56;27815:18;;5637:77:25::2;27489:350:81::0;5637:77:25::2;-1:-1:-1::0;5740:3:25::2;;5468:288;;;;5765:48;5787:1;5791:2;;5795:8;;5805:7;;5765:13;:48::i;:::-;2303:20:8::0;1716:1;2809:7;:22;2629:209;2303:20;5301:519:25;;;;;;:::o;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;2071:101:3:-:0;1334:13;:11;:13::i;:::-;2135:30:::1;2162:1;2135:18;:30::i;:::-;2071:101::o:0;2635:177:25:-;2735:18;:16;:18::i;:::-;2763:42;2789:4;;2795:9;2763:25;:42::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;;5898:264:25;6044:25;2261:21:8;:19;:21::i;:::-;6081:18:25::1;:16;:18::i;:::-;6116:39;6125:10;6137:2;;6141:7;;6150:4;;6116:8;:39::i;:::-;6109:46;;2303:20:8::0;1716:1;2809:7;:22;2629:209;2303:20;5898:264:25;;;;;;;;:::o;1441:85:3:-;1513:6;;-1:-1:-1;;;;;1513:6:3;;1441:85::o;2611:93:75:-;2658:13;2690:7;2683:14;;;;;:::i;3974:126:25:-;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;:::-;4067:26:25::1;4086:6;;4067:18;:26::i;2772:151:75:-:0;2866:50;2885:10;2897:8;2907;2866:18;:50::i;4368:313:25:-;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;:::-;4492:30:25;;::::1;4484:56;;;;-1:-1:-1::0;;;4484:56:25::1;;;;;;;:::i;:::-;4555:6;4550:125;4563:19:::0;;::::1;4550:125;;;4599:34;4612:8;;4621:1;4612:11;;;;;;;:::i;:::-;;;;;;;4625:4;;4630:1;4625:7;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;4599:12;:34::i;:::-;4659:3;;4550:125;;4915:163:32::0;4994:18;:16;:18::i;:::-;5022:49;5051:10;5063:7;5022:28;:49::i;12139:226:25:-;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;:::-;12301:57:25::1;12324:9;12335;;12346:11;;12301:22;:57::i;12898:162::-:0;12981:24;13024:29;13045:7;13024:20;:29::i;12432:169::-;12511:24;12537:16;12572:22;12586:7;12572:13;:22::i;:::-;12565:29;;;;12432:169;;;:::o;1993: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;:::-;2083:31:25::1;2104:9;2083:20;:31::i;6245:440::-:0;2261:21:8;:19;:21::i;:::-;6403:18:25::1;:16;:18::i;:::-;6436:6;6431:190;6444:19:::0;;::::1;6431:190;;;6528:10;6488:28;6504:8:::0;;6513:1;6504:11;;::::1;;;;;:::i;:::-;;;;;;;6488:15;:28::i;:::-;-1:-1:-1::0;;;;;6488:51:25::1;;6480:99;;;::::0;-1:-1:-1;;;6480:99:25;;28046:2:81;6480:99:25::1;::::0;::::1;28028:21:81::0;28085:2;28065:18;;;28058:30;28124:34;28104:18;;;28097:62;-1:-1:-1;;;28175:18:81;;;28168:33;28218:19;;6480:99:25::1;27844:399:81::0;6480:99:25::1;6605:3;;6431:190;;;;6630:48;6644:10;6656:2;;6660:8;;6670:7;;6630:13;:48::i;3126:168::-:0;3223:18;:16;:18::i;:::-;3251:36;3273:7;3282:4;;3251:21;:36::i;2990:166:75:-;-1:-1:-1;;;;;3112:27:75;;;3089:4;3112:27;;;:18;:27;;;;;;;;:37;;;;;;;;;;;;;;;2990:166::o;4754:160:25:-;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;:::-;4864:43:25::1;4884:9;4895:11;4864:19;:43::i;3223:390:75:-:0;-1:-1:-1;;;;;3423:18:75;;3431:10;3423:18;;:56;;;3445:34;3462:4;3468:10;3445:16;:34::i;:::-;3402:149;;;;-1:-1:-1;;;3402:149:75;;;;;;;:::i;:::-;3561:45;3579:4;3585:2;3589;3593:6;3601:4;3561:17;:45::i;2321:198:3:-;1334:13;:11;:13::i;:::-;-1:-1:-1;;;;;2409:22:3;::::1;2401:73;;;::::0;-1:-1:-1;;;2401:73:3;;28450:2:81;2401:73:3::1;::::0;::::1;28432:21:81::0;28489:2;28469:18;;;28462:30;28528:34;28508:18;;;28501:62;-1:-1:-1;;;28579:18:81;;;28572:36;28625:19;;2401:73:3::1;28248:402:81::0;2401:73:3::1;2484:28;2503:8;2484:18;:28::i;4987:236:25:-:0;5142:16;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;:::-;5177:39:25::2;5194:1;5198:2;;5202:7;;5211:4;;5177:8;:39::i;1012:229:33:-:0;1119:4;-1:-1:-1;;;;;;1142:52:33;;-1:-1:-1;;;1142:52:33;;:92;;;1198:36;1222:11;1198:23;:36::i;1171:305:75:-;1273:4;-1:-1:-1;;;;;;1308:41:75;;-1:-1:-1;;;1308:41:75;;:109;;-1:-1:-1;;;;;;;1365:52:75;;-1:-1:-1;;;1365:52:75;1308:161;;;;1433:36;1457: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;8948:62;8852:165;-1:-1:-1;;;8852:165:23:o;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;;28857:2:81;5637:91:32;;;28839:21:81;28896:2;28876:18;;;28869:30;-1:-1:-1;;;28915:18:81;;;28908:55;28980:18;;5637:91:32;28655: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;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;10341:135::-;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;4558:131:33:-;4631:7;4657:25;;;:16;:25;;;;;;-1:-1:-1;;;;;4657:25:33;;4558:131::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;;34629:2:81;10698:62:32;;;34611:21:81;34668:2;34648:18;;;34641:30;-1:-1:-1;;;34687:18:81;;;34680:58;34755:18;;10698:62:32;34427: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;;35513:2:81;1654:68:3;;;35495:21:81;;;35532:18;;;35525:30;35591:34;35571:18;;;35564:62;35643:18;;1654:68:3;35311:356:81;8615:156:23;8688:4;8711:53;8719:3;-1:-1:-1;;;;;8739:23:23;;8711:7;:53::i;5848:1113:75:-;6068:7;:14;6054:3;:10;:28;6046:81;;;;-1:-1:-1;;;6046:81:75;;;;;;;:::i;:::-;-1:-1:-1;;;;;6145:16:75;;6137:66;;;;-1:-1:-1;;;6137:66:75;;;;;;;:::i;:::-;6233:10;6254:60;6233:10;6285:4;6291:2;6295:3;6300:7;6309:4;6254:20;:60::i;:::-;6330:9;6325:411;6349:3;:10;6345:1;:14;6325:411;;;6380:10;6393:3;6397:1;6393:6;;;;;;;;:::i;:::-;;;;;;;6380:19;;6413:14;6430:7;6438:1;6430:10;;;;;;;;:::i;:::-;;;;;;;;;;;;6455:19;6477:13;;;:9;:13;;;;;;-1:-1:-1;;;;;6477:19:75;;;;;;;;;;;;6430:10;;-1:-1:-1;6518:21:75;;;;6510:76;;;;-1:-1:-1;;;6510:76:75;;;;;;;:::i;:::-;6628:13;;;;:9;:13;;;;;;;;-1:-1:-1;;;;;6628:19:75;;;;;;;;;;6650:20;;;6628:42;;6698:17;;;;;;;:27;;6650:20;;6628:13;6698:27;;6650:20;;6698:27;:::i;:::-;;;;;;;;6366:370;;;6361:3;;;;:::i;:::-;;;6325:411;;;;6781:2;-1:-1:-1;;;;;6751:47:75;6775:4;-1:-1:-1;;;;;6751:47:75;6765:8;-1:-1:-1;;;;;6751:47:75;-1:-1:-1;;;;;;;;;;;6785:3:75;6790:7;6751:47;;;;;;;:::i;:::-;;;;;;;;6879:75;6915:8;6925:4;6931:2;6935:3;6940:7;6949:4;6879:35;:75::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;4370:463::-;-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;;37700:2:81;4492:72:32;;;37682:21:81;37739:1;37719:18;;;37712:29;-1:-1:-1;;;37757:18:81;;;37750:37;37804:18;;4492:72:32;37498: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;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;2336:287:8:-;1759:1;2468:7;;:19;2460:63;;;;-1:-1:-1;;;2460:63:8;;38035:2:81;2460:63:8;;;38017:21:81;38074:2;38054:18;;;38047:30;38113:33;38093:18;;;38086:61;38164:18;;2460:63:8;37833:355:81;2460:63:8;1759:1;2598:7;:18;2336:287::o;14579:171:25:-;14675:32;14687:7;14696:2;14700:6;14675:11;:32::i;:::-;14717:16;;;;:12;:16;;;;;:26;;14737:6;;14717:16;:26;;14737:6;;14717:26;:::i;:::-;;;;-1:-1:-1;;;;;14579:171:25:o;14810:296::-;14931:39;14948:7;14957:3;14962:7;14931:16;:39::i;:::-;14985:6;14980:120;14997:3;:10;14993:1;:14;14980:120;;;15048:7;15056:1;15048:10;;;;;;;;:::i;:::-;;;;;;;15024:12;:20;15037:3;15041:1;15037:6;;;;;;;;:::i;:::-;;;;;;;15024:20;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;-1:-1:-1;;15084:3:25;;14980:120;;2846:735:33;2972:19;2964:45;;;;-1:-1:-1;;;2964:45:33;;;;;;;:::i;:::-;3019:17;3039:16;:29;3056:8;;3065:1;3056:11;;;;;;;:::i;:::-;;;;;;;;;;3039:29;;-1:-1:-1;3039:29:33;;;;;;;;-1:-1:-1;3039:29:33;;;;-1:-1:-1;;;;;3039:29:33;;-1:-1:-1;3078:174:33;3091:19;;;3078:174;;;3168:9;-1:-1:-1;;;;;3135:42:33;:16;:29;3152:8;;3161:1;3152:11;;;;;;;:::i;:::-;;;;;;;;;;3135:29;;-1:-1:-1;3135:29:33;;;;;;;;-1:-1:-1;3135:29:33;;-1:-1:-1;;;;;3135:29:33;:42;3127:83;;;;-1:-1:-1;;;3127:83:33;;;;;;;:::i;:::-;3236:3;;3078:174;;;-1:-1:-1;;;;;;3320:23:33;;;3316:259;;3362:94;3394:9;-1:-1:-1;;;3362:31:33;:94::i;:::-;3358:207;;;3475:76;;-1:-1:-1;;;3475:76:33;;-1:-1:-1;;;;;3475:50:33;;;;;:76;;3526:5;;3533:8;;;;3543:7;;;;3475:76;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2954:627;2846:735;;;;;:::o;3566:132:32:-;3626:32;:11;3647:10;3626:20;:32::i;:::-;3618:73;;;;-1:-1:-1;;;3618:73:32;;39506:2:81;3618:73:32;;;39488:21:81;39545:2;39525:18;;;39518:30;-1:-1:-1;;;39564:18:81;;;39557:58;39632:18;;3618:73:32;39304:352:81;6142:193:32;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;1186:320:5:-;-1:-1:-1;;;;;1476:19:5;;:23;;;1186:320::o;574:151:76:-;5363:13:4;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:4;;;;;;;:::i;:::-;678:40:76::1;703:5;710:7;678:24;:40::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;8926:1620:25:-;-1:-1:-1;;;;;9071:23:25;;;9067:98;;9110:44;9132:2;;9110:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9110:44:25;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9136:8:25;;-1:-1:-1;9136:8:25;;;;9110:44;;;9136:8;;9110:44;9136:8;9110:44;;;;;;;;;-1:-1:-1;;9110:44:25;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9146:7:25;;-1:-1:-1;9146:7:25;;;;9110:44;;;9146:7;;9110:44;9146:7;9110:44;;;;;;;;;-1:-1:-1;9110:21:25;;-1:-1:-1;;;9110:44:25:i;:::-;9192:1;9179:14;;:38;;;;-1:-1:-1;9216:1:25;9197:20;;9179:38;:61;;;;-1:-1:-1;9239:1:25;9221:19;;9179:61;9175:1365;;;9284:51;9290:2;;9293:1;9290:5;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;9297:8;;9306:1;9297:11;;;;;;;:::i;:::-;;;;;;;9310:7;;9318:1;9310:10;;;;;;;:::i;:::-;9322:12;;;9332:1;9322:12;;9310:10;9322:12;;;;;;9310:10;;;;;;;;9322:12;-1:-1:-1;9284:5:25;:51::i;:::-;9175:1365;;;9381:1;9368:14;;:51;;;;-1:-1:-1;9386:33:25;;;9368:51;9364:1176;;;9478:50;9489:2;;9492:1;9489:5;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;9496:8;;9478:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;9478:50:25;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9506:7:25;;-1:-1:-1;9506:7:25;;;;9478:50;;;9506:7;;9478:50;9506:7;9478:50;;;;;;;;-1:-1:-1;9478:50:25;-1:-1:-1;9515:12:25;;-1:-1:-1;;9515:12:25;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;9515:12:25;;9478:10;:50::i;9364:1176::-;9568:1;9549:20;;:43;;;;-1:-1:-1;9591:1:25;9573:19;;9549:43;9545:995;;;9686:6;9681:148;9694:13;;;9681:148;;;9728:51;9734:2;;9737:1;9734:5;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;9741:8;;9750:1;9741:11;;;;;;;:::i;:::-;;;;;;;9754:7;;9762:1;9754:10;;;;;;;:::i;9728:51::-;9809:3;;9681:148;;;;9545:995;;;9868:1;9849:20;;:51;;;;-1:-1:-1;9873:27:25;;;9849:51;9845:695;;;10005:6;10000:148;10013:13;;;10000:148;;;10047:51;10053:2;;10056:1;10053:5;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;10060:8;;10069:1;10060:11;;;;;;;:::i;:::-;;;;;;;10073:7;;10081:1;10073:10;;;;;;;:::i;10047:51::-;10128:3;;10000:148;;9845:695;10168:28;;;:59;;;;-1:-1:-1;10200:27:25;;;10168:59;10164:376;;;10333:6;10328:148;10341:13;;;10328:148;;;10375:51;10381:2;;10384:1;10381:5;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;10388:8;;10397:1;10388:11;;;;;;;:::i;10375:51::-;10456:3;;10328:148;;10164:376;10506:23;;-1:-1:-1;;;10506:23:25;;;;;;;:::i;10164:376::-;8926:1620;;;;;;;:::o;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;6735:2136:25:-;6864:25;6917:1;6905:13;;6901:477;;;7019:16;;;7033:1;7019:16;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7008:27:25;-1:-1:-1;7072:1:25;7057:16;;;;;:72;;-1:-1:-1;7096:1:25;7078:19;;;:50;;-1:-1:-1;7101:27:25;;;7078:50;7049:98;;;;-1:-1:-1;;;7049:98:25;;;;;;;:::i;:::-;6901:477;;;7263:7;-1:-1:-1;;;;;7249:29:25;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;7249:29:25;-1:-1:-1;7238:40:25;-1:-1:-1;7300:16:25;;;:49;;-1:-1:-1;7320:29:25;;;7300:49;7292:75;;;;-1:-1:-1;;;7292:75:25;;;;;;;:::i;:::-;7420:6;7415:255;7432:8;:15;7428:1;:19;7415:255;;;7466:11;;7464:13;;;;;:::i;:::-;;;;-1:-1:-1;7505:11:25;;7491;;:8;;7500:1;;7491:11;;;;;;:::i;:::-;;;;;;;;;;;:25;;;;7604:11;;7587:29;;;;:16;:29;;;;;;:41;;-1:-1:-1;;;;;;7587:41:25;-1:-1:-1;;;;;7587:41:25;;;;;-1:-1:-1;7654:3:25;7415:255;;;-1:-1:-1;;;;;;7684:23:25;;;7680:98;;7723:44;7745:2;;7723:44;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;7723:44:25;;;;;;;;;;;;;;;;;;7749:8;;-1:-1:-1;7723:44:25;;-1:-1:-1;7759:7:25;;;;;;7723:44;;;;7759:7;;7723:44;7759:7;7723:44;;;;;;;;;-1:-1:-1;7723:21:25;;-1:-1:-1;;;7723:44:25:i;:::-;7805:1;7792:14;;:38;;;;;7810:8;:15;7829:1;7810:20;7792:38;7788:861;;;7871:51;7877:2;;7880:1;7877:5;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;7884:8;7893:1;7884:11;;;;;;;;:::i;:::-;;;;;;;7897:7;;7905:1;7897:10;;;;;;;:::i;7871:51::-;7788:861;;;7955:1;7943:13;;7939:710;;;8055:1;8037:19;;;8033:525;;8135:6;8130:160;8143:13;;;8130:160;;;8181:51;8187:2;;8190:1;8187:5;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;8194:8;8203:1;8194:11;;;;;;;;:::i;:::-;;;;;;;8207:7;;8215:1;8207:10;;;;;;;:::i;8181:51::-;8266:3;;8130:160;;;;7939:710;;8033:525;8389:6;8384:160;8397:13;;;8384:160;;;8435:51;8441:2;;8444:1;8441:5;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;8448:8;8457:1;8448:11;;;;;;;;:::i;:::-;;;;;;;8461:7;;8469:1;8461:10;;;;;;;:::i;8435:51::-;8520:3;;8384:160;;7939:710;8588:50;8599:2;;8602:1;8599:5;;;;;;;:::i;:::-;;;;;;;;;;;;;;:::i;:::-;8606:8;8616:7;;8588:50;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;8588:50:25;-1:-1:-1;8625:12:25;;-1:-1:-1;;8625:12:25;8588:50;8664:6;8659:206;8676:8;:15;8672:1;:19;8659:206;;;8712:15;;;:44;;;;;8755:1;8737:4;;8742:1;8737:7;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;8731:21;;:25;8712:44;8708:116;;;8802:4;;8807:1;8802:7;;;;;;;:::i;:::-;;;;;;;;;;;;:::i;:::-;8776:10;:23;8787:8;8796:1;8787:11;;;;;;;;:::i;:::-;;;;;;;8776:23;;;;;;;;;;;:33;;;;;;;:::i;:::-;;8708:116;8849:3;;8659:206;;;;6735:2136;;;;;;;;;:::o;7078:118:32:-;7149:31;;;:19;:31;;;:40;7183:6;;7149:31;:40;:::i;11606:323:75:-;11756:8;-1:-1:-1;;;;;11747:17:75;:5;-1:-1:-1;;;;;11747:17:75;;11739:71;;;;-1:-1:-1;;;11739:71:75;;40275:2:81;11739:71:75;;;40257:21:81;40314:2;40294:18;;;40287:30;40353:34;40333:18;;;40326:62;-1:-1:-1;;;40404:18:81;;;40397:39;40453:19;;11739:71:75;40073:405:81;11739:71:75;-1:-1:-1;;;;;11820:25:75;;;;;;;:18;:25;;;;;;;;:35;;;;;;;;;;;;;:46;;-1:-1:-1;;11820:46:75;;;;;;;;;;11881:41;;1178::81;;;11881::75;;1151:18:81;11881:41:75;;;;;;;11606:323;;;:::o;1322:354:33:-;1425:101;1457:9;-1:-1:-1;;;;;;1425:31:33;:101::i;:::-;1421:249;;;-1:-1:-1;;;;;1542:37:33;;;;;;:26;:37;;;;;;;;;:47;;-1:-1:-1;;1542:47:33;;;;;;;;;;1608:51;;1178:41:81;;;1608:51:33;;1151:18:81;1608:51:33;;;;;;;1322:354;;:::o;10104:161:32:-;10174:34;10236:22;10250:7;10236:13;:22::i;:::-;-1:-1:-1;10220:38:32;10104:161;-1:-1:-1;;10104:161:32:o;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;5351:163::-;5424:44;;5457:10;;-1:-1:-1;;;;;5424:44:32;;;;;;;;5478:29;:11;5497:9;5478:18;:29::i;1748:527:33:-;1844:31;:11;1865:9;1844:20;:31::i;:::-;1836:61;;;;-1:-1:-1;;;1836:61:33;;42695:2:81;1836:61:33;;;42677:21:81;42734:2;42714:18;;;42707:30;-1:-1:-1;;;42753:18:81;;;42746:47;42810:18;;1836:61:33;42493:341:81;1836:61:33;-1:-1:-1;;;;;1915:25:33;;;;:123;;;1944:94;1976:11;-1:-1:-1;;;1944:31:33;:94::i;:::-;1907:151;;;;-1:-1:-1;;;1907:151:33;;43041:2:81;1907:151:33;;;43023:21:81;43080:2;43060:18;;;43053:30;-1:-1:-1;;;43099:18:81;;;43092:45;43154:18;;1907:151:33;42839:339:81;1907:151:33;-1:-1:-1;;;;;2072:32:33;;;;;;;:21;:32;;;;;;;;:47;;;;2068:201;;-1:-1:-1;;;;;2135:32:33;;;;;;;:21;:32;;;;;;:46;;-1:-1:-1;;;;;;2135:46:33;;;;;;;;;2200:58;2247:10;;2135:46;:32;2200:58;;;1748:527;;:::o;4557:945:75:-;-1:-1:-1;;;;;4738:16:75;;4730:66;;;;-1:-1:-1;;;4730:66:75;;;;;;;:::i;:::-;4826:10;4807:16;4869:21;4887:2;4869:17;:21::i;:::-;4846:44;;4900:24;4927:25;4945:6;4927:17;:25::i;:::-;4900:52;;4963:60;4984:8;4994:4;5000:2;5004:3;5009:7;5018:4;4963:20;:60::i;:::-;5034:19;5056:13;;;:9;:13;;;;;;;;-1:-1:-1;;;;;5056:19:75;;;;;;;;;;5093:21;;;;5085:76;;;;-1:-1:-1;;;5085:76:75;;;;;;;:::i;:::-;5195:13;;;;:9;:13;;;;;;;;-1:-1:-1;;;;;5195:19:75;;;;;;;;;;5217:20;;;5195:42;;5257:17;;;;;;;:27;;5217:20;;5195:13;5257:27;;5217:20;;5257:27;:::i;:::-;;;;-1:-1:-1;;5300:46:75;;;43357:25:81;;;43413:2;43398:18;;43391:34;;;-1:-1:-1;;;;;5300:46:75;;;;;;;;;;;;-1:-1:-1;;;;;;;;;;;5300:46:75;43330:18:81;5300:46:75;;;;;;;5427:68;5458:8;5468:4;5474:2;5478;5482:6;5490:4;5427:30;:68::i;:::-;4720:782;;;;4557:945;;;;;:::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;1349:282:20:-;1436:4;1543:23;1558:7;1543:14;:23::i;:::-;:81;;;;;1570:54;1603:7;1612:11;1570:32;:54::i;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;11997:430:32:-;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;;43638:2:81;12360:60:32;;;43620:21:81;43677:2;43657:18;;;43650:30;-1:-1:-1;;;43696:18:81;;;43689:53;43759:18;;12360:60:32;43436: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;;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;;;;;1120:210:25;1283:40;1300:4;1306:2;1310:3;1315:7;1283:16;:40::i;14962:792:75:-;15194:15;:2;-1:-1:-1;;;;;15194:13:75;;:15::i;:::-;15190:558;;;15229:79;;-1:-1:-1;;;15229:79:75;;-1:-1:-1;;;;;15229:43:75;;;;;:79;;15273:8;;15283:4;;15289:3;;15294:7;;15303:4;;15229:79;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;15229:79:75;;;;;;;;-1:-1:-1;;15229:79:75;;;;;;;;;;;;:::i;:::-;;;15225:513;;;;:::i;:::-;;;;;;;;;:::i;:::-;;;;;;;;15614:6;15607:14;;-1:-1:-1;;;15607:14:75;;;;;;;;:::i;15225:513::-;;;15661:62;;-1:-1:-1;;;15661:62:75;;46328:2:81;15661:62:75;;;46310:21:81;46367:2;46347:18;;;46340:30;46406:34;46386:18;;;46379:62;-1:-1:-1;;;46457:18:81;;;46450:50;46517:19;;15661:62:75;46126:416:81;15225:513:75;-1:-1:-1;;;;;;15387:60:75;;-1:-1:-1;;;15387:60:75;15383:157;;15471:50;;-1:-1:-1;;;15471:50:75;;;;;;;:::i;4904:118:23:-;4971:7;4997:3;:11;;5009:5;4997:18;;;;;;;;:::i;:::-;;;;;;;;;4990:25;;4904:118;;;;:::o;9506:784:75:-;-1:-1:-1;;;;;9628:18:75;;9620:66;;;;-1:-1:-1;;;9620:66:75;;;;;;;:::i;:::-;9716:10;9697:16;9759:21;9777:2;9759:17;:21::i;:::-;9736:44;;9790:24;9817:25;9835:6;9817:17;:25::i;:::-;9790:52;;9853:66;9874:8;9884:4;9898:1;9902:3;9907:7;9853:66;;;;;;;;;;;;:20;:66::i;:::-;9930:19;9952:13;;;:9;:13;;;;;;;;-1:-1:-1;;;;;9952:19:75;;;;;;;;;;9989:21;;;;9981:70;;;;-1:-1:-1;;;9981:70:75;;;;;;;:::i;:::-;10085:13;;;;:9;:13;;;;;;;;-1:-1:-1;;;;;10085:19:75;;;;;;;;;;;;10107:20;;;10085:42;;10153:54;;43357:25:81;;;43398:18;;;43391:34;;;10085:19:75;;10153:54;;;;-1:-1:-1;;;;;;;;;;;10153:54:75;43330:18:81;10153:54:75;;;;;;;10218:65;;;;;;;;;10262:1;10218:65;;;5301:519:25;10529:941:75;-1:-1:-1;;;;;10676:18:75;;10668:66;;;;-1:-1:-1;;;10668:66:75;;;;;;;:::i;:::-;10766:7;:14;10752:3;:10;:28;10744:81;;;;-1:-1:-1;;;10744:81:75;;;;;;;:::i;:::-;10836:16;10855:10;10836:29;;10876:66;10897:8;10907:4;10921:1;10925:3;10930:7;10876:66;;;;;;;;;;;;:20;:66::i;:::-;10958:9;10953:364;10977:3;:10;10973:1;:14;10953:364;;;11008:10;11021:3;11025:1;11021:6;;;;;;;;:::i;:::-;;;;;;;11008:19;;11041:14;11058:7;11066:1;11058:10;;;;;;;;:::i;:::-;;;;;;;;;;;;11083:19;11105:13;;;:9;:13;;;;;;-1:-1:-1;;;;;11105:19:75;;;;;;;;;;;;11058:10;;-1:-1:-1;11146:21:75;;;;11138:70;;;;-1:-1:-1;;;11138:70:75;;;;;;;:::i;:::-;11250:13;;;;:9;:13;;;;;;;;-1:-1:-1;;;;;11250:19:75;;;;;;;;;;11272:20;;11250:42;;10989:3;;;;:::i;:::-;;;;10953:364;;;;11370:1;-1:-1:-1;;;;;11332:55:75;11356:4;-1:-1:-1;;;;;11332:55:75;11346:8;-1:-1:-1;;;;;11332:55:75;-1:-1:-1;;;;;;;;;;;11374:3:75;11379:7;11332:55;;;;;;;:::i;:::-;;;;;;;;11398:65;;;;;;;;;11442:1;11398:65;;;5301:519:25;731:161:76;5363:13:4;;;;;;;5355:69;;;;-1:-1:-1;;;5355:69:4;;;;;;;:::i;:::-;845:5:76::1;:13;853:5:::0;845;:13:::1;:::i;:::-;-1:-1:-1::0;868:7:76::1;:17;878:7:::0;868;: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;2479:320:33:-:0;2629:10;2652:1;2607:33;;;:21;:33;;;;;;-1:-1:-1;;;;;2607:33:33;:47;2603:190;;2723:10;2701:33;;;;:21;:33;;;;;;;;2670:112;;-1:-1:-1;;;2670:112:33;;-1:-1:-1;;;;;2701:33:33;;;;2670:77;;:112;;2723:10;2760:2;;2764:8;;2774:7;;2670:112;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;13957:196:25;14072:38;14084:7;14093:2;14097:6;14105:4;14072:11;:38::i;:::-;14120:16;;;;:12;:16;;;;;:26;;14140:6;;14120:16;:26;;14140:6;;14120:26;:::i;:::-;;;;-1:-1:-1;;;;;;13957:196:25:o;14213:311::-;14348:40;14365:2;14369:3;14374:7;14383:4;14348:16;:40::i;:::-;14403:6;14398:120;14415:3;:10;14411:1;:14;14398:120;;;14466:7;14474:1;14466:10;;;;;;;;:::i;:::-;;;;;;;14442:12;:20;14455:3;14459:1;14455:6;;;;;;;;:::i;:::-;;;;;;;14442:20;;;;;;;;;;;;:34;;;;;;;:::i;:::-;;;;-1:-1:-1;;14502:3:25;;14398:120;;2206:404:23;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;;15760:193:75;15879:16;;;15893:1;15879:16;;;;;;;;;15826;;15854:22;;15879:16;;;;;;;;;;;;-1:-1:-1;15879:16:75;15854:41;;15916:7;15905:5;15911:1;15905:8;;;;;;;;:::i;:::-;;;;;;;;;;:18;15941:5;15760:193;-1:-1:-1;;15760:193:75:o;14231:725::-;14438:15;:2;-1:-1:-1;;;;;14438:13:75;;:15::i;:::-;14434:516;;;14473:72;;-1:-1:-1;;;14473:72:75;;-1:-1:-1;;;;;14473:38:75;;;;;:72;;14512:8;;14522:4;;14528:2;;14532:6;;14540:4;;14473:72;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;-1:-1:-1;14473:72:75;;;;;;;;-1:-1:-1;;14473:72:75;;;;;;;;;;;;:::i;:::-;;;14469:471;;;;:::i;:::-;-1:-1:-1;;;;;;14594:55:75;;-1:-1:-1;;;14594:55:75;14590:152;;14673:50;;-1:-1:-1;;;14673:50:75;;;;;;;:::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;;;;;;50623:33:81;;4433:71:20;;;;50605:52:81;;;;4433:71:20;;;;;;;;;;50578: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;3629:923:33:-;-1:-1:-1;;;;;3797:18:33;;3793:31;3817:7;3793:31;3834:17;3854:16;:29;3871:8;3880:1;3871:11;;;;;;;;:::i;:::-;;;;;;;3854:29;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3854:29:33;3834:49;;3899:6;3894:174;3911:8;:15;3907:1;:19;3894:174;;;3984:9;-1:-1:-1;;;;;3951:42:33;:16;:29;3968:8;3977:1;3968:11;;;;;;;;:::i;:::-;;;;;;;;;;;;3951:29;;;;;;;;;;-1:-1:-1;3951:29:33;;-1:-1:-1;;;;;3951:29:33;:42;3943:83;;;;-1:-1:-1;;;3943:83:33;;;;;;;:::i;:::-;4052:3;;3894:174;;;-1:-1:-1;;;;;;4081:23:33;;;;;;:64;;-1:-1:-1;;;;;;4108:37:33;;;;;;:26;:37;;;;;;;;4081:64;4077:469;;;4169:107;;-1:-1:-1;;;4169:107:33;;-1:-1:-1;;;;;4169:66:33;;;;;:107;;4236:10;;4248:4;;4254:2;;4258:8;;4268:7;;4169:107;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4161:146;;;;-1:-1:-1;;;4161:146:33;;;;;;;:::i;:::-;4077:469;;;4328:20;;-1:-1:-1;;;;;4328:20:33;:34;4324:222;;4426:20;;4386:118;;-1:-1:-1;;;4386:118:33;;-1:-1:-1;;;;;4426:20:33;;;;4386:77;;:118;;4464:10;;4476:4;;4482:2;;4486:8;;4496:7;;4386:118;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;4378:157;;;;-1:-1:-1;;;4378:157:33;;;;;;;:::i;7334:707:75:-;-1:-1:-1;;;;;7481:16:75;;7473:62;;;;-1:-1:-1;;;7473:62:75;;;;;;;:::i;:::-;7565:10;7546:16;7608:21;7626:2;7608:17;:21::i;:::-;7585:44;;7639:24;7666:25;7684:6;7666:17;:25::i;:::-;7639:52;;7702:66;7723:8;7741:1;7745:2;7749:3;7754:7;7763:4;7702:20;:66::i;:::-;7779:13;;;;:9;:13;;;;;;;;-1:-1:-1;;;;;7779:17:75;;;;;;;;;:27;;7800:6;;7779:13;:27;;7800:6;;7779:27;:::i;:::-;;;;-1:-1:-1;;7821:52:75;;;43357:25:81;;;43413:2;43398:18;;43391:34;;;-1:-1:-1;;;;;7821:52:75;;;;7854:1;;7821:52;;;;-1:-1:-1;;;;;;;;;;;7821:52:75;43330:18:81;7821:52:75;;;;;;;7960:74;7991:8;8009:1;8013:2;8017;8021:6;8029:4;7960:30;:74::i;8431:789::-;-1:-1:-1;;;;;8603:16:75;;8595:62;;;;-1:-1:-1;;;8595:62:75;;;;;;;:::i;:::-;8689:7;:14;8675:3;:10;:28;8667:81;;;;-1:-1:-1;;;8667:81:75;;;;;;;:::i;:::-;8778:10;8799:66;8778:10;8759:16;8842:2;8846:3;8851:7;8860:4;8799:20;:66::i;:::-;8881:9;8876:101;8900:3;:10;8896:1;:14;8876:101;;;8956:7;8964:1;8956:10;;;;;;;;:::i;:::-;;;;;;;8931:9;:17;8941:3;8945:1;8941:6;;;;;;;;:::i;:::-;;;;;;;8931:17;;;;;;;;;;;:21;8949:2;-1:-1:-1;;;;;8931:21:75;-1:-1:-1;;;;;8931:21:75;;;;;;;;;;;;;:35;;;;;;;:::i;:::-;;;;-1:-1:-1;8912:3:75;;-1:-1:-1;8912:3:75;;;:::i;:::-;;;;8876:101;;;;9028:2;-1:-1:-1;;;;;8992:53:75;9024:1;-1:-1:-1;;;;;8992:53:75;9006:8;-1:-1:-1;;;;;8992:53:75;-1:-1:-1;;;;;;;;;;;9032:3:75;9037:7;8992:53;;;;;;;:::i;:::-;;;;;;;;9132:81;9168:8;9186:1;9190:2;9194:3;9199:7;9208:4;9132:35;:81::i;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:131:81;-1:-1:-1;;;;;89:31:81;;79:42;;69:70;;135:1;132;125:12;150:315;218:6;226;279:2;267:9;258:7;254:23;250:32;247:52;;;295:1;292;285:12;247:52;334:9;321:23;353:31;378:5;353:31;:::i;:::-;403:5;455:2;440:18;;;;427:32;;-1:-1:-1;;;150:315:81:o;652:131::-;-1:-1:-1;;;;;;726:32:81;;716:43;;706:71;;773:1;770;763:12;788:245;846:6;899:2;887:9;878:7;874:23;870:32;867:52;;;915:1;912;905:12;867:52;954:9;941:23;973:30;997:5;973:30;:::i;1230:247::-;1289:6;1342:2;1330:9;1321:7;1317:23;1313:32;1310:52;;;1358:1;1355;1348:12;1310:52;1397:9;1384:23;1416:31;1441:5;1416:31;:::i;1482:250::-;1567:1;1577:113;1591:6;1588:1;1585:13;1577:113;;;1667:11;;;1661:18;1648:11;;;1641:39;1613:2;1606:10;1577:113;;;-1:-1:-1;;1724:1:81;1706:16;;1699:27;1482:250::o;1737:271::-;1779:3;1817:5;1811:12;1844:6;1839:3;1832:19;1860:76;1929:6;1922:4;1917:3;1913:14;1906:4;1899:5;1895:16;1860:76;:::i;:::-;1990:2;1969:15;-1:-1:-1;;1965:29:81;1956:39;;;;1997:4;1952:50;;1737:271;-1:-1:-1;;1737:271:81:o;2013:220::-;2162:2;2151:9;2144:21;2125:4;2182:45;2223:2;2212:9;2208:18;2200:6;2182:45;:::i;2238:180::-;2297:6;2350:2;2338:9;2329:7;2325:23;2321:32;2318:52;;;2366:1;2363;2356:12;2318:52;-1:-1:-1;2389:23:81;;2238:180;-1:-1:-1;2238:180:81:o;2423:435::-;2476:3;2514:5;2508:12;2541:6;2536:3;2529:19;2567:4;2596:2;2591:3;2587:12;2580:19;;2633:2;2626:5;2622:14;2654:1;2664:169;2678:6;2675:1;2672:13;2664:169;;;2739:13;;2727:26;;2773:12;;;;2808:15;;;;2700:1;2693:9;2664:169;;;-1:-1:-1;2849:3:81;;2423:435;-1:-1:-1;;;;;2423:435:81:o;2863:261::-;3042:2;3031:9;3024:21;3005:4;3062:56;3114:2;3103:9;3099:18;3091:6;3062:56;:::i;3129:348::-;3181:8;3191:6;3245:3;3238:4;3230:6;3226:17;3222:27;3212:55;;3263:1;3260;3253:12;3212:55;-1:-1:-1;3286:20:81;;-1:-1:-1;;;;;3318:30:81;;3315:50;;;3361:1;3358;3351:12;3315:50;3398:4;3390:6;3386:17;3374:29;;3450:3;3443:4;3434:6;3426;3422:19;3418:30;3415:39;3412:59;;;3467:1;3464;3457:12;3482:479;3562:6;3570;3578;3631:2;3619:9;3610:7;3606:23;3602:32;3599:52;;;3647:1;3644;3637:12;3599:52;3683:9;3670:23;3660:33;;3744:2;3733:9;3729:18;3716:32;-1:-1:-1;;;;;3763:6:81;3760:30;3757:50;;;3803:1;3800;3793:12;3757:50;3842:59;3893:7;3884:6;3873:9;3869:22;3842:59;:::i;:::-;3482:479;;3920:8;;-1:-1:-1;3816:85:81;;-1:-1:-1;;;;3482:479:81:o;3966:375::-;4037:8;4047:6;4101:3;4094:4;4086:6;4082:17;4078:27;4068:55;;4119:1;4116;4109:12;4068:55;-1:-1:-1;4142:20:81;;-1:-1:-1;;;;;4174:30:81;;4171:50;;;4217:1;4214;4207:12;4171:50;4254:4;4246:6;4242:17;4230:29;;4314:3;4307:4;4297:6;4294:1;4290:14;4282:6;4278:27;4274:38;4271:47;4268:67;;;4331:1;4328;4321:12;4346:865;4485:6;4493;4501;4509;4517;4570:2;4558:9;4549:7;4545:23;4541:32;4538:52;;;4586:1;4583;4576:12;4538:52;4622:9;4609:23;4599:33;;4683:2;4672:9;4668:18;4655:32;-1:-1:-1;;;;;4747:2:81;4739:6;4736:14;4733:34;;;4763:1;4760;4753:12;4733:34;4802:78;4872:7;4863:6;4852:9;4848:22;4802:78;:::i;:::-;4899:8;;-1:-1:-1;4776:104:81;-1:-1:-1;4987:2:81;4972:18;;4959:32;;-1:-1:-1;5003:16:81;;;5000:36;;;5032:1;5029;5022:12;5000:36;;5071:80;5143:7;5132:8;5121:9;5117:24;5071:80;:::i;:::-;4346:865;;;;-1:-1:-1;4346:865:81;;-1:-1:-1;5170:8:81;;5045:106;4346:865;-1:-1:-1;;;4346:865:81:o;5216:203::-;-1:-1:-1;;;;;5380:32:81;;;;5362:51;;5350:2;5335:18;;5216:203::o;5424:248::-;5492:6;5500;5553:2;5541:9;5532:7;5528:23;5524:32;5521:52;;;5569:1;5566;5559:12;5521:52;-1:-1:-1;;5592:23:81;;;5662:2;5647:18;;;5634:32;;-1:-1:-1;5424:248:81:o;5677:274::-;-1:-1:-1;;;;;5869:32:81;;;;5851:51;;5933:2;5918:18;;5911:34;5839:2;5824:18;;5677:274::o;5956:127::-;6017:10;6012:3;6008:20;6005:1;5998:31;6048:4;6045:1;6038:15;6072:4;6069:1;6062:15;6088:249;6198:2;6179:13;;-1:-1:-1;;6175:27:81;6163:40;;-1:-1:-1;;;;;6218:34:81;;6254:22;;;6215:62;6212:88;;;6280:18;;:::i;:::-;6316:2;6309:22;-1:-1:-1;;6088:249:81:o;6342:183::-;6402:4;-1:-1:-1;;;;;6427:6:81;6424:30;6421:56;;;6457:18;;:::i;:::-;-1:-1:-1;6502:1:81;6498:14;6514:4;6494:25;;6342:183::o;6530:724::-;6584:5;6637:3;6630:4;6622:6;6618:17;6614:27;6604:55;;6655:1;6652;6645:12;6604:55;6691:6;6678:20;6717:4;6740:43;6780:2;6740:43;:::i;:::-;6812:2;6806:9;6824:31;6852:2;6844:6;6824:31;:::i;:::-;6890:18;;;6982:1;6978:10;;;;6966:23;;6962:32;;;6924:15;;;;-1:-1:-1;7006:15:81;;;7003:35;;;7034:1;7031;7024:12;7003:35;7070:2;7062:6;7058:15;7082:142;7098:6;7093:3;7090:15;7082:142;;;7164:17;;7152:30;;7202:12;;;;7115;;7082:142;;;-1:-1:-1;7242:6:81;6530:724;-1:-1:-1;;;;;;6530:724:81:o;7259:186::-;7307:4;-1:-1:-1;;;;;7332:6:81;7329:30;7326:56;;;7362:18;;:::i;:::-;-1:-1:-1;7428:2:81;7407:15;-1:-1:-1;;7403:29:81;7434:4;7399:40;;7259:186::o;7450:508::-;7492:5;7545:3;7538:4;7530:6;7526:17;7522:27;7512:55;;7563:1;7560;7553:12;7512:55;7599:6;7586:20;7625:31;7653:2;7625:31;:::i;:::-;7685:2;7679:9;7697:31;7725:2;7717:6;7697:31;:::i;:::-;7752:2;7744:6;7737:18;7798:3;7791:4;7786:2;7778:6;7774:15;7770:26;7767:35;7764:55;;;7815:1;7812;7805:12;7764:55;7879:2;7872:4;7864:6;7860:17;7853:4;7845:6;7841:17;7828:54;7926:1;7902:15;;;7919:4;7898:26;7891:37;;;;-1:-1:-1;7906:6:81;7450:508;-1:-1:-1;;;7450:508:81:o;7963:1071::-;8117:6;8125;8133;8141;8149;8202:3;8190:9;8181:7;8177:23;8173:33;8170:53;;;8219:1;8216;8209:12;8170:53;8258:9;8245:23;8277:31;8302:5;8277:31;:::i;:::-;8327:5;-1:-1:-1;8384:2:81;8369:18;;8356:32;8397:33;8356:32;8397:33;:::i;:::-;8449:7;-1:-1:-1;8507:2:81;8492:18;;8479:32;-1:-1:-1;;;;;8560:14:81;;;8557:34;;;8587:1;8584;8577:12;8557:34;8610:61;8663:7;8654:6;8643:9;8639:22;8610:61;:::i;:::-;8600:71;;8724:2;8713:9;8709:18;8696:32;8680:48;;8753:2;8743:8;8740:16;8737:36;;;8769:1;8766;8759:12;8737:36;8792:63;8847:7;8836:8;8825:9;8821:24;8792:63;:::i;:::-;8782:73;;8908:3;8897:9;8893:19;8880:33;8864:49;;8938:2;8928:8;8925:16;8922:36;;;8954:1;8951;8944:12;8922:36;;8977:51;9020:7;9009:8;8998:9;8994:24;8977:51;:::i;:::-;8967:61;;;7963:1071;;;;;;;;:::o;9039:411::-;9110:6;9118;9171:2;9159:9;9150:7;9146:23;9142:32;9139:52;;;9187:1;9184;9177:12;9139:52;9227:9;9214:23;-1:-1:-1;;;;;9252:6:81;9249:30;9246:50;;;9292:1;9289;9282:12;9246:50;9331:59;9382:7;9373:6;9362:9;9358:22;9331:59;:::i;:::-;9409:8;;9305:85;;-1:-1:-1;9039:411:81;-1:-1:-1;;;;9039:411:81:o;9455:546::-;9535:6;9543;9551;9604:2;9592:9;9583:7;9579:23;9575:32;9572:52;;;9620:1;9617;9610:12;9572:52;9659:9;9646:23;9678:31;9703:5;9678:31;:::i;:::-;9728:5;-1:-1:-1;9784:2:81;9769:18;;9756:32;-1:-1:-1;;;;;9800:30:81;;9797:50;;;9843:1;9840;9833:12;10006:461;10059:3;10097:5;10091:12;10124:6;10119:3;10112:19;10150:4;10179:2;10174:3;10170:12;10163:19;;10216:2;10209:5;10205:14;10237:1;10247:195;10261:6;10258:1;10255:13;10247:195;;;10326:13;;-1:-1:-1;;;;;10322:39:81;10310:52;;10382:12;;;;10417:15;;;;10358:1;10276:9;10247:195;;10472:261;10651:2;10640:9;10633:21;10614:4;10671:56;10723:2;10712:9;10708:18;10700:6;10671:56;:::i;10738:797::-;10868:6;10876;10884;10892;10945:2;10933:9;10924:7;10920:23;10916:32;10913:52;;;10961:1;10958;10951:12;10913:52;11001:9;10988:23;-1:-1:-1;;;;;11071:2:81;11063:6;11060:14;11057:34;;;11087:1;11084;11077:12;11057:34;11126:78;11196:7;11187:6;11176:9;11172:22;11126:78;:::i;:::-;11223:8;;-1:-1:-1;11100:104:81;-1:-1:-1;11311:2:81;11296:18;;11283:32;;-1:-1:-1;11327:16:81;;;11324:36;;;11356:1;11353;11346:12;11324:36;;11395:80;11467:7;11456:8;11445:9;11441:24;11395:80;:::i;:::-;10738:797;;;;-1:-1:-1;11494:8:81;-1:-1:-1;;;;10738:797:81:o;11540:924::-;11671:6;11679;11687;11695;11703;11756:2;11744:9;11735:7;11731:23;11727:32;11724:52;;;11772:1;11769;11762:12;11724:52;11811:9;11798:23;11830:31;11855:5;11830:31;:::i;:::-;11880:5;-1:-1:-1;11936:2:81;11921:18;;11908:32;-1:-1:-1;;;;;11989:14:81;;;11986:34;;;12016:1;12013;12006:12;12469:118;12555:5;12548:13;12541:21;12534:5;12531:32;12521:60;;12577:1;12574;12567:12;12592:681;12678:6;12686;12694;12702;12755:2;12743:9;12734:7;12730:23;12726:32;12723:52;;;12771:1;12768;12761:12;12723:52;12810:9;12797:23;12829:31;12854:5;12829:31;:::i;:::-;12879:5;-1:-1:-1;12935:2:81;12920:18;;12907:32;-1:-1:-1;;;;;12951:30:81;;12948:50;;;12994:1;12991;12984:12;12948:50;13033:59;13084:7;13075:6;13064:9;13060:22;13033:59;:::i;:::-;13111:8;;-1:-1:-1;13007:85:81;-1:-1:-1;;13198:2:81;13183:18;;13170:32;13211:30;13170:32;13211:30;:::i;:::-;12592:681;;;;-1:-1:-1;12592:681:81;;-1:-1:-1;;12592:681:81:o;13278:541::-;13366:6;13374;13427:2;13415:9;13406:7;13402:23;13398:32;13395:52;;;13443:1;13440;13433:12;13395:52;13483:9;13470:23;-1:-1:-1;;;;;13553:2:81;13545:6;13542:14;13539:34;;;13569:1;13566;13559:12;13539:34;13592:49;13633:7;13624:6;13613:9;13609:22;13592:49;:::i;:::-;13582:59;;13694:2;13683:9;13679:18;13666:32;13650:48;;13723:2;13713:8;13710:16;13707:36;;;13739:1;13736;13729:12;13707:36;;13762:51;13805:7;13794:8;13783:9;13779:24;13762:51;:::i;:::-;13752:61;;;13278:541;;;;;:::o;13824:1277::-;13942:6;13950;14003:2;13991:9;13982:7;13978:23;13974:32;13971:52;;;14019:1;14016;14009:12;13971:52;14059:9;14046:23;-1:-1:-1;;;;;14129:2:81;14121:6;14118:14;14115:34;;;14145:1;14142;14135:12;14115:34;14183:6;14172:9;14168:22;14158:32;;14228:7;14221:4;14217:2;14213:13;14209:27;14199:55;;14250:1;14247;14240:12;14199:55;14286:2;14273:16;14308:4;14331:43;14371:2;14331:43;:::i;:::-;14403:2;14397:9;14415:31;14443:2;14435:6;14415:31;:::i;:::-;14481:18;;;14569:1;14565:10;;;;14557:19;;14553:28;;;14515:15;;;;-1:-1:-1;14593:19:81;;;14590:39;;;14625:1;14622;14615:12;14590:39;14649:11;;;;14669:217;14685:6;14680:3;14677:15;14669:217;;;14765:3;14752:17;14782:31;14807:5;14782:31;:::i;:::-;14826:18;;14702:12;;;;14864;;;;14669:217;;;14905:6;-1:-1:-1;;14949:18:81;;14936:32;;-1:-1:-1;;14980:16:81;;;14977:36;;;15009:1;15006;14999:12;14977:36;;15032:63;15087:7;15076:8;15065:9;15061:24;15032:63;:::i;15912:1112::-;16070:6;16078;16086;16094;16102;16110;16163:2;16151:9;16142:7;16138:23;16134:32;16131:52;;;16179:1;16176;16169:12;16131:52;16219:9;16206:23;-1:-1:-1;;;;;16289:2:81;16281:6;16278:14;16275:34;;;16305:1;16302;16295:12;16275:34;16344:78;16414:7;16405:6;16394:9;16390:22;16344:78;:::i;:::-;16441:8;;-1:-1:-1;16318:104:81;-1:-1:-1;16529:2:81;16514:18;;16501:32;;-1:-1:-1;16545:16:81;;;16542:36;;;16574:1;16571;16564:12;16542:36;16613:80;16685:7;16674:8;16663:9;16659:24;16613:80;:::i;:::-;16712:8;;-1:-1:-1;16587:106:81;-1:-1:-1;16800:2:81;16785:18;;16772:32;;-1:-1:-1;16816:16:81;;;16813:36;;;16845:1;16842;16835:12;16813:36;;16884:80;16956:7;16945:8;16934:9;16930:24;16884:80;:::i;:::-;15912:1112;;;;-1:-1:-1;15912:1112:81;;-1:-1:-1;15912:1112:81;;16983:8;;15912:1112;-1:-1:-1;;;15912:1112:81:o;17029:540::-;17106:6;17114;17122;17175:2;17163:9;17154:7;17150:23;17146:32;17143:52;;;17191:1;17188;17181:12;17143:52;17231:9;17218:23;-1:-1:-1;;;;;17256:6:81;17253:30;17250:50;;;17296:1;17293;17286:12;17250:50;17335:59;17386:7;17377:6;17366:9;17362:22;17335:59;:::i;:::-;17413:8;;-1:-1:-1;17309:85:81;-1:-1:-1;;17498:2:81;17483:18;;17470:32;17511:28;17470:32;17511:28;:::i;:::-;17558:5;17548:15;;;17029:540;;;;;:::o;18703:382::-;18768:6;18776;18829:2;18817:9;18808:7;18804:23;18800:32;18797:52;;;18845:1;18842;18835:12;18797:52;18884:9;18871:23;18903:31;18928:5;18903:31;:::i;:::-;18953:5;-1:-1:-1;19010:2:81;18995:18;;18982:32;19023:30;18982:32;19023:30;:::i;:::-;19072:7;19062:17;;;18703:382;;;;;:::o;19090:241::-;19146:6;19199:2;19187:9;19178:7;19174:23;19170:32;19167:52;;;19215:1;19212;19205:12;19167:52;19254:9;19241:23;19273:28;19295:5;19273:28;:::i;20555:481::-;20828:2;20817:9;20810:21;20791:4;20854:56;20906:2;20895:9;20891:18;20883:6;20854:56;:::i;:::-;20958:9;20950:6;20946:22;20941:2;20930:9;20926:18;20919:50;20986:44;21023:6;21015;20986:44;:::i;:::-;20978:52;20555:481;-1:-1:-1;;;;;20555:481:81:o;21041:388::-;21109:6;21117;21170:2;21158:9;21149:7;21145:23;21141:32;21138:52;;;21186:1;21183;21176:12;21138:52;21225:9;21212:23;21244:31;21269:5;21244:31;:::i;:::-;21294:5;-1:-1:-1;21351:2:81;21336:18;;21323:32;21364:33;21323:32;21364:33;:::i;21434:734::-;21538:6;21546;21554;21562;21570;21623:3;21611:9;21602:7;21598:23;21594:33;21591:53;;;21640:1;21637;21630:12;21591:53;21679:9;21666:23;21698:31;21723:5;21698:31;:::i;:::-;21748:5;-1:-1:-1;21805:2:81;21790:18;;21777:32;21818:33;21777:32;21818:33;:::i;:::-;21870:7;-1:-1:-1;21924:2:81;21909:18;;21896:32;;-1:-1:-1;21975:2:81;21960:18;;21947:32;;-1:-1:-1;22030:3:81;22015:19;;22002:33;-1:-1:-1;;;;;22047:30:81;;22044:50;;;22090:1;22087;22080:12;22044:50;22113:49;22154:7;22145:6;22134:9;22130:22;22113:49;:::i;22584:400::-;22786:2;22768:21;;;22825:2;22805:18;;;22798:30;22864:34;22859:2;22844:18;;22837:62;-1:-1:-1;;;22930:2:81;22915:18;;22908:34;22974:3;22959:19;;22584:400::o;22989:380::-;23068:1;23064:12;;;;23111;;;23132:61;;23186:4;23178:6;23174:17;23164:27;;23132:61;23239:2;23231:6;23228:14;23208:18;23205:38;23202:161;;23285:10;23280:3;23276:20;23273:1;23266:31;23320:4;23317:1;23310:15;23348:4;23345:1;23338:15;23725:345;23927:2;23909:21;;;23966:2;23946:18;;;23939:30;-1:-1:-1;;;24000:2:81;23985:18;;23978:51;24061:2;24046:18;;23725:345::o;24075:410::-;24277:2;24259:21;;;24316:2;24296:18;;;24289:30;24355:34;24350:2;24335:18;;24328:62;-1:-1:-1;;;24421:2:81;24406:18;;24399:44;24475:3;24460:19;;24075:410::o;24490:127::-;24551:10;24546:3;24542:20;24539:1;24532:31;24582:4;24579:1;24572:15;24606:4;24603:1;24596:15;24622:127;24683:10;24678:3;24674:20;24671:1;24664:31;24714:4;24711:1;24704:15;24738:4;24735:1;24728:15;24754:135;24793:3;24814:17;;;24811:43;;24834:18;;:::i;:::-;-1:-1:-1;24881:1:81;24870:13;;24754:135::o;25254:337::-;25456:2;25438:21;;;25495:2;25475:18;;;25468:30;-1:-1:-1;;;25529:2:81;25514:18;;25507:43;25582:2;25567:18;;25254:337::o;26620:522::-;26698:4;26704:6;26764:11;26751:25;26858:2;26854:7;26843:8;26827:14;26823:29;26819:43;26799:18;26795:68;26785:96;;26877:1;26874;26867:12;26785:96;26904:33;;26956:20;;;-1:-1:-1;;;;;;26988:30:81;;26985:50;;;27031:1;27028;27021:12;26985:50;27064:4;27052:17;;-1:-1:-1;27095:14:81;27091:27;;;27081:38;;27078:58;;;27132:1;27129;27122:12;27147:337;27349:2;27331:21;;;27388:2;27368:18;;;27361:30;-1:-1:-1;;;27422:2:81;27407:18;;27400:43;27475:2;27460:18;;27147:337::o;29135:722::-;29185:3;29226:5;29220:12;29255:36;29281:9;29255:36;:::i;:::-;29310:1;29327:18;;;29354:133;;;;29501:1;29496:355;;;;29320:531;;29354:133;-1:-1:-1;;29387:24:81;;29375:37;;29460:14;;29453:22;29441:35;;29432:45;;;-1:-1:-1;29354:133:81;;29496:355;29527:5;29524:1;29517:16;29556:4;29601:2;29598:1;29588:16;29626:1;29640:165;29654:6;29651:1;29648:13;29640:165;;;29732:14;;29719:11;;;29712:35;29775:16;;;;29669:10;;29640:165;;;29644:3;;;29834:6;29829:3;29825:16;29818:23;;29320:531;;;;;29135:722;;;;:::o;29862:277::-;30035:3;30060:73;30094:38;30128:3;30120:6;30094:38;:::i;:::-;30086:6;30060:73;:::i;:::-;30053:80;29862:277;-1:-1:-1;;;;29862:277:81:o;30144:703::-;30224:6;30277:2;30265:9;30256:7;30252:23;30248:32;30245:52;;;30293:1;30290;30283:12;30245:52;30326:9;30320:16;-1:-1:-1;;;;;30351:6:81;30348:30;30345:50;;;30391:1;30388;30381:12;30345:50;30414:22;;30467:4;30459:13;;30455:27;-1:-1:-1;30445:55:81;;30496:1;30493;30486:12;30445:55;30525:2;30519:9;30547:31;30575:2;30547:31;:::i;:::-;30607:2;30601:9;30619:31;30647:2;30639:6;30619:31;:::i;:::-;30674:2;30666:6;30659:18;30714:7;30709:2;30704;30700;30696:11;30692:20;30689:33;30686:53;;;30735:1;30732;30725:12;30686:53;30748:68;30813:2;30808;30800:6;30796:15;30791:2;30787;30783:11;30748:68;:::i;30852:389::-;31028:3;31056:38;31090:3;31082:6;31056:38;:::i;:::-;31123:6;31117:13;31139:65;31197:6;31193:2;31186:4;31178:6;31174:17;31139:65;:::i;:::-;31220:15;;30852:389;-1:-1:-1;;;;30852:389:81:o;31246:545::-;31348:2;31343:3;31340:11;31337:448;;;31384:1;31409:5;31405:2;31398:17;31454:4;31450:2;31440:19;31524:2;31512:10;31508:19;31505:1;31501:27;31495:4;31491:38;31560:4;31548:10;31545:20;31542:47;;;-1:-1:-1;31583:4:81;31542:47;31638:2;31633:3;31629:12;31626:1;31622:20;31616:4;31612:31;31602:41;;31693:82;31711:2;31704:5;31701:13;31693:82;;;31756:17;;;31737:1;31726:13;31693:82;;31796:166;-1:-1:-1;;31924:1:81;31920:11;;;31916:24;31912:29;31902:40;31948:1;31944:11;;;;31899:57;;31796:166::o;31967:1206::-;-1:-1:-1;;;;;32086:3:81;32083:27;32080:53;;;32113:18;;:::i;:::-;32142:94;32232:3;32192:38;32224:4;32218:11;32192:38;:::i;:::-;32186:4;32142:94;:::i;:::-;32262:1;32287:2;32282:3;32279:11;32304:1;32299:616;;;;32959:1;32976:3;32973:93;;;-1:-1:-1;33032:19:81;;;33019:33;32973:93;33092:64;33152:3;33145:5;33092:64;:::i;:::-;33086:4;33079:78;;32272:895;;32299:616;29082:1;29075:14;;;29119:4;29106:18;;-1:-1:-1;;32335:17:81;;;32436:9;32458:229;32472:7;32469:1;32466:14;32458:229;;;32561:19;;;32548:33;32533:49;;32668:4;32653:20;;;;32621:1;32609:14;;;;32488:12;32458:229;;;32462:3;32715;32706:7;32703:16;32700:159;;;32839:1;32835:6;32829:3;32823;32820:1;32816:11;32812:21;32808:34;32804:39;32791:9;32786:3;32782:19;32769:33;32765:79;32757:6;32750:95;32700:159;;;32902:1;32896:3;32893:1;32889:11;32885:19;32879:4;32872:33;32272:895;;31967:1206;;;:::o;33178:311::-;33266:19;;;33248:3;-1:-1:-1;;;;;33297:31:81;;33294:51;;;33341:1;33338;33331:12;33294:51;33377:6;33374:1;33370:14;33429:8;33422:5;33415:4;33410:3;33406:14;33393:45;33458:18;;;;33478:4;33454:29;;33178:311;-1:-1:-1;;;33178:311:81:o;33494:928::-;33798:2;33810:21;;;33783:18;;33866:22;;;33750:4;33945:6;33919:2;33904:18;;33750:4;33979:304;33993:6;33990:1;33987:13;33979:304;;;34068:6;34055:20;34088:31;34113:5;34088:31;:::i;:::-;-1:-1:-1;;;;;34144:31:81;34132:44;;34199:4;34258:15;;;;34223:12;;;;34172:1;34008:9;33979:304;;;33983:3;34330:9;34325:3;34321:19;34314:4;34303:9;34299:20;34292:49;34358:58;34412:3;34404:6;34396;34358:58;:::i;:::-;34350:66;33494:928;-1:-1:-1;;;;;;;;33494:928:81:o;34784:168::-;34857:9;;;34888;;34905:15;;;34899:22;;34885:37;34875:71;;34926:18;;:::i;35089:217::-;35129:1;35155;35145:132;;35199:10;35194:3;35190:20;35187:1;35180:31;35234:4;35231:1;35224:15;35262:4;35259:1;35252:15;35145:132;-1:-1:-1;35291:9:81;;35089:217::o;35672:404::-;35874:2;35856:21;;;35913:2;35893:18;;;35886:30;35952:34;35947:2;35932:18;;35925:62;-1:-1:-1;;;36018:2:81;36003:18;;35996:38;36066:3;36051:19;;35672:404::o;36081:401::-;36283:2;36265:21;;;36322:2;36302:18;;;36295:30;36361:34;36356:2;36341:18;;36334:62;-1:-1:-1;;;36427:2:81;36412:18;;36405:35;36472:3;36457:19;;36081:401::o;36487:406::-;36689:2;36671:21;;;36728:2;36708:18;;;36701:30;36767:34;36762:2;36747:18;;36740:62;-1:-1:-1;;;36833:2:81;36818:18;;36811:40;36883:3;36868:19;;36487:406::o;36898:125::-;36963:9;;;36984:10;;;36981:36;;;36997:18;;:::i;37028:465::-;37285:2;37274:9;37267:21;37248:4;37311:56;37363:2;37352:9;37348:18;37340:6;37311:56;:::i;38193:128::-;38260:9;;;38281:11;;;38278:37;;;38295:18;;:::i;38326:352::-;38528:2;38510:21;;;38567:2;38547:18;;;38540:30;-1:-1:-1;;;38601:2:81;38586:18;;38579:58;38669:2;38654:18;;38326:352::o;38683:616::-;-1:-1:-1;;;;;38988:32:81;;38970:51;;39057:2;39052;39037:18;;39030:30;;;-1:-1:-1;;39083:73:81;;39137:18;;39129:6;39121;39083:73;:::i;:::-;39204:9;39196:6;39192:22;39187:2;39176:9;39172:18;39165:50;39232:61;39286:6;39278;39270;39232:61;:::i;39661:407::-;39863:2;39845:21;;;39902:2;39882:18;;;39875:30;39941:34;39936:2;39921:18;;39914:62;-1:-1:-1;;;40007:2:81;39992:18;;39985:41;40058:3;40043:19;;39661:407::o;40483:721::-;40548:5;40601:3;40594:4;40586:6;40582:17;40578:27;40568:55;;40619:1;40616;40609:12;40568:55;40648:6;40642:13;40674:4;40697:43;40737:2;40697:43;:::i;:::-;40769:2;40763:9;40781:31;40809:2;40801:6;40781:31;:::i;:::-;40847:18;;;40939:1;40935:10;;;;40923:23;;40919:32;;;40881:15;;;;-1:-1:-1;40963:15:81;;;40960:35;;;40991:1;40988;40981:12;40960:35;41027:2;41019:6;41015:15;41039:135;41055:6;41050:3;41047:15;41039:135;;;41121:10;;41109:23;;41152:12;;;;41072;;41039:135;;41209:1279;41346:6;41354;41407:2;41395:9;41386:7;41382:23;41378:32;41375:52;;;41423:1;41420;41413:12;41375:52;41456:9;41450:16;-1:-1:-1;;;;;41526:2:81;41518:6;41515:14;41512:34;;;41542:1;41539;41532:12;41512:34;41580:6;41569:9;41565:22;41555:32;;41625:7;41618:4;41614:2;41610:13;41606:27;41596:55;;41647:1;41644;41637:12;41596:55;41676:2;41670:9;41698:4;41721:43;41761:2;41721:43;:::i;:::-;41793:2;41787:9;41805:31;41833:2;41825:6;41805:31;:::i;:::-;41871:18;;;41959:1;41955:10;;;;41947:19;;41943:28;;;41905:15;;;;-1:-1:-1;41983:19:81;;;41980:39;;;42015:1;42012;42005:12;41980:39;42039:11;;;;42059:210;42075:6;42070:3;42067:15;42059:210;;;42148:3;42142:10;42165:31;42190:5;42165:31;:::i;:::-;42209:18;;42092:12;;;;42247;;;;42059:210;;;42325:18;;;42319:25;42288:6;;-1:-1:-1;42319:25:81;;-1:-1:-1;;;42356:16:81;;;42353:36;;;42385:1;42382;42375:12;42353:36;;42408:74;42474:7;42463:8;42452:9;42448:24;42408:74;:::i;44048:127::-;44109:10;44104:3;44100:20;44097:1;44090:31;44140:4;44137:1;44130:15;44164:4;44161:1;44154:15;44180:827;-1:-1:-1;;;;;44577:15:81;;;44559:34;;44629:15;;44624:2;44609:18;;44602:43;44539:3;44676:2;44661:18;;44654:31;;;44502:4;;44708:57;;44745:19;;44737:6;44708:57;:::i;:::-;44813:9;44805:6;44801:22;44796:2;44785:9;44781:18;44774:50;44847:44;44884:6;44876;44847:44;:::i;:::-;44833:58;;44940:9;44932:6;44928:22;44922:3;44911:9;44907:19;44900:51;44968:33;44994:6;44986;44968:33;:::i;45012:249::-;45081:6;45134:2;45122:9;45113:7;45109:23;45105:32;45102:52;;;45150:1;45147;45140:12;45102:52;45182:9;45176:16;45201:30;45225:5;45201:30;:::i;45266:179::-;45301:3;45343:1;45325:16;45322:23;45319:120;;;45389:1;45386;45383;45368:23;-1:-1:-1;45426:1:81;45420:8;45415:3;45411:18;45319:120;45266:179;:::o;45450:671::-;45489:3;45531:4;45513:16;45510:26;45507:39;;;45450:671;:::o;45507:39::-;45573:2;45567:9;-1:-1:-1;;45638:16:81;45634:25;;45631:1;45567:9;45610:50;45689:4;45683:11;45713:16;-1:-1:-1;;;;;45819:2:81;45812:4;45804:6;45800:17;45797:25;45792:2;45784:6;45781:14;45778:45;45775:58;;;45826:5;;;;;45450:671;:::o;45775:58::-;45863:6;45857:4;45853:17;45842:28;;45899:3;45893:10;45926:2;45918:6;45915:14;45912:27;;;45932:5;;;;;;45450:671;:::o;45912:27::-;46016:2;45997:16;45991:4;45987:27;45983:36;45976:4;45967:6;45962:3;45958:16;45954:27;45951:69;45948:82;;;46023:5;;;;;;45450:671;:::o;45948:82::-;46039:57;46090:4;46081:6;46073;46069:19;46065:30;46059:4;46039:57;:::i;:::-;-1:-1:-1;46112:3:81;;45450:671;-1:-1:-1;;;;;45450:671:81:o;46547:404::-;46749:2;46731:21;;;46788:2;46768:18;;;46761:30;46827:34;46822:2;46807:18;;46800:62;-1:-1:-1;;;46893:2:81;46878:18;;46871:38;46941:3;46926:19;;46547:404::o;46956:399::-;47158:2;47140:21;;;47197:2;47177:18;;;47170:30;47236:34;47231:2;47216:18;;47209:62;-1:-1:-1;;;47302:2:81;47287:18;;47280:33;47345:3;47330:19;;46956:399::o;47360:400::-;47562:2;47544:21;;;47601:2;47581:18;;;47574:30;47640:34;47635:2;47620:18;;47613:62;-1:-1:-1;;;47706:2:81;47691:18;;47684:34;47750:3;47735:19;;47360:400::o;47765:1352::-;47891:3;47885:10;-1:-1:-1;;;;;47910:6:81;47907:30;47904:56;;;47940:18;;:::i;:::-;47969:97;48059:6;48019:38;48051:4;48045:11;48019:38;:::i;:::-;48013:4;47969:97;:::i;:::-;48121:4;;48185:2;48174:14;;48202:1;48197:663;;;;48904:1;48921:6;48918:89;;;-1:-1:-1;48973:19:81;;;48967:26;48918:89;49033:67;49093:6;49086:5;49033:67;:::i;:::-;49027:4;49020:81;;48167:944;;48197:663;29082:1;29075:14;;;29119:4;29106:18;;-1:-1:-1;;48233:20:81;;;48351:236;48365:7;48362:1;48359:14;48351:236;;;48454:19;;;48448:26;48433:42;;48546:27;;;;48514:1;48502:14;;;;48381:19;;48351:236;;;48355:3;48615:6;48606:7;48603:19;48600:201;;;48676:19;;;48670:26;-1:-1:-1;;48759:1:81;48755:14;;;48771:3;48751:24;48747:37;48743:42;48728:58;48713:74;;48600:201;-1:-1:-1;;;;;48847:1:81;48831:14;;;48827:22;48814:36;;-1:-1:-1;47765:1352:81:o;49122:768::-;-1:-1:-1;;;;;49485:32:81;;49467:51;;49554:3;49549:2;49534:18;;49527:31;;;-1:-1:-1;;49581:57:81;;49618:19;;49610:6;49581:57;:::i;:::-;49686:9;49678:6;49674:22;49669:2;49658:9;49654:18;49647:50;49720:44;49757:6;49749;49720:44;:::i;:::-;49706:58;;49812:9;49804:6;49800:22;49795:2;49784:9;49780:18;49773:50;49840:44;49877:6;49869;49840:44;:::i;49895:561::-;-1:-1:-1;;;;;50192:15:81;;;50174:34;;50244:15;;50239:2;50224:18;;50217:43;50291:2;50276:18;;50269:34;;;50334:2;50319:18;;50312:34;;;50154:3;50377;50362:19;;50355:32;;;50117:4;;50404:46;;50430:19;;50422:6;50404:46;:::i;50668:746::-;-1:-1:-1;;;;;51047:15:81;;;51029:34;;51099:15;;;51094:2;51079:18;;51072:43;51151:15;;51146:2;51131:18;;51124:43;51009:3;51198:2;51183:18;;51176:31;;;50972:4;;51230:57;;51267:19;;51259:6;51230:57;:::i;:::-;51336:9;51328:6;51324:22;51318:3;51307:9;51303:19;51296:51;51364:44;51401:6;51393;51364:44;:::i;51419:245::-;51486:6;51539:2;51527:9;51518:7;51514:23;51510:32;51507:52;;;51555:1;51552;51545:12;51507:52;51587:9;51581:16;51606:28;51628:5;51606:28;:::i;51669:350::-;51871:2;51853:21;;;51910:2;51890:18;;;51883:30;-1:-1:-1;;;51944:2:81;51929:18;;51922:56;52010:2;51995:18;;51669:350::o;52024:397::-;52226:2;52208:21;;;52265:2;52245:18;;;52238:30;52304:34;52299:2;52284:18;;52277:62;-1:-1:-1;;;52370:2:81;52355:18;;52348:31;52411:3;52396:19;;52024:397::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/ERC1155CreatorCore.sol\";\nimport \"./token/ERC1155/ERC1155Upgradeable.sol\";\n\n/**\n * @dev ERC1155Creator implementation\n */\ncontract ERC1155CreatorImplementation is AdminControlUpgradeable, ERC1155Upgradeable, ERC1155CreatorCore {\n    using EnumerableSet for EnumerableSet.AddressSet;\n\n    mapping(uint256 => uint256) private _totalSupply;\n\n    /**\n     * Initializer\n     */\n    function initialize(string memory _name, string memory _symbol) public initializer {\n        __ERC1155_init(_name, _symbol);\n        __Ownable_init();\n    }\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC1155Core, ERC1155CreatorCore, AdminControlUpgradeable) returns (bool) {\n        return ERC1155CreatorCore.supportsInterface(interfaceId) || ERC1155Core.supportsInterface(interfaceId) || AdminControlUpgradeable.supportsInterface(interfaceId);\n    }\n\n    function _beforeTokenTransfer(address, address from, address to, uint256[] memory ids, uint256[] memory amounts, bytes memory) internal virtual override {\n        _approveTransfer(from, to, ids, amounts);\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 {IERC1155CreatorCore-mintBaseNew}.\n     */\n    function mintBaseNew(address[] calldata to, uint256[] calldata amounts, string[] calldata uris) public virtual override nonReentrant adminRequired returns(uint256[] memory) {\n        return _mintNew(address(0), to, amounts, uris);\n    }\n\n    /**\n     * @dev See {IERC1155CreatorCore-mintBaseExisting}.\n     */\n    function mintBaseExisting(address[] calldata to, uint256[] calldata tokenIds, uint256[] calldata amounts) public virtual override nonReentrant adminRequired {\n        for (uint i; i < tokenIds.length;) {\n            uint256 tokenId = tokenIds[i];\n            require(tokenId > 0 && tokenId <= _tokenCount, \"Invalid token\");\n            require(_tokenExtension(tokenId) == address(0), \"Token created by extension\");\n            unchecked { ++i; }\n        }\n        _mintExisting(address(0), to, tokenIds, amounts);\n    }\n\n    /**\n     * @dev See {IERC1155CreatorCore-mintExtensionNew}.\n     */\n    function mintExtensionNew(address[] calldata to, uint256[] calldata amounts, string[] calldata uris) public virtual override nonReentrant returns(uint256[] memory tokenIds) {\n        requireExtension();\n        return _mintNew(msg.sender, to, amounts, uris);\n    }\n\n    /**\n     * @dev See {IERC1155CreatorCore-mintExtensionExisting}.\n     */\n    function mintExtensionExisting(address[] calldata to, uint256[] calldata tokenIds, uint256[] calldata amounts) public virtual override nonReentrant {\n        requireExtension();\n        for (uint i; i < tokenIds.length;) {\n            require(_tokenExtension(tokenIds[i]) == address(msg.sender), \"Token not created by this extension\");\n            unchecked { ++i; }\n        }\n        _mintExisting(msg.sender, to, tokenIds, amounts);\n    }\n\n    /**\n     * @dev Mint new tokens\n     */\n    function _mintNew(address extension, address[] calldata to, uint256[] calldata amounts, string[] calldata uris) internal returns(uint256[] memory tokenIds) {\n        if (to.length > 1) {\n            // Multiple receiver.  Give every receiver the same new token\n            tokenIds = new uint256[](1);\n            require(uris.length <= 1 && (amounts.length == 1 || to.length == amounts.length), \"Invalid input\");\n        } else {\n            // Single receiver.  Generating multiple tokens\n            tokenIds = new uint256[](amounts.length);\n            require(uris.length == 0 || amounts.length == uris.length, \"Invalid input\");\n        }\n\n        // Assign tokenIds\n        for (uint i; i < tokenIds.length;) {\n            ++_tokenCount;\n            tokenIds[i] = _tokenCount;\n            // Track the extension that minted the token\n            _tokensExtension[_tokenCount] = extension;\n            unchecked { ++i; }\n        }\n\n        if (extension != address(0)) {\n            _checkMintPermissions(to, tokenIds, amounts);\n        }\n\n        if (to.length == 1 && tokenIds.length == 1) {\n           // Single mint\n           _mint(to[0], tokenIds[0], amounts[0], new bytes(0));\n        } else if (to.length > 1) {\n            // Multiple receivers.  Receiving the same token\n            if (amounts.length == 1) {\n                // Everyone receiving the same amount\n                for (uint i; i < to.length;) {\n                    _mint(to[i], tokenIds[0], amounts[0], new bytes(0));\n                    unchecked { ++i; }\n                }\n            } else {\n                // Everyone receiving different amounts\n                for (uint i; i < to.length;) {\n                    _mint(to[i], tokenIds[0], amounts[i], new bytes(0));\n                    unchecked { ++i; }\n                }\n            }\n        } else {\n            _mintBatch(to[0], tokenIds, amounts, new bytes(0));\n        }\n\n        for (uint i; i < tokenIds.length;) {\n            if (i < uris.length && bytes(uris[i]).length > 0) {\n                _tokenURIs[tokenIds[i]] = uris[i];\n            }\n            unchecked { ++i; }\n        }\n    }\n\n    /**\n     * @dev Mint existing tokens\n     */\n    function _mintExisting(address extension, address[] calldata to, uint256[] calldata tokenIds, uint256[] calldata amounts) internal {\n        if (extension != address(0)) {\n            _checkMintPermissions(to, tokenIds, amounts);\n        }\n\n        if (to.length == 1 && tokenIds.length == 1 && amounts.length == 1) {\n             // Single mint\n            _mint(to[0], tokenIds[0], amounts[0], new bytes(0));            \n        } else if (to.length == 1 && tokenIds.length == amounts.length) {\n            // Batch mint to same receiver\n            _mintBatch(to[0], tokenIds, amounts, new bytes(0));\n        } else if (tokenIds.length == 1 && amounts.length == 1) {\n            // Mint of the same token/token amounts to various receivers\n            for (uint i; i < to.length;) {\n                _mint(to[i], tokenIds[0], amounts[0], new bytes(0));\n                unchecked { ++i; }\n            }\n        } else if (tokenIds.length == 1 && to.length == amounts.length) {\n            // Mint of the same token with different amounts to different receivers\n            for (uint i; i < to.length;) {\n                _mint(to[i], tokenIds[0], amounts[i], new bytes(0));\n                unchecked { ++i; }\n            }\n        } else if (to.length == tokenIds.length && to.length == amounts.length) {\n            // Mint of different tokens and different amounts to different receivers\n            for (uint i; i < to.length;) {\n                _mint(to[i], tokenIds[i], amounts[i], new bytes(0));\n                unchecked { ++i; }\n            }\n        } else {\n            revert(\"Invalid input\");\n        }\n    }\n\n    /**\n     * @dev See {IERC1155CreatorCore-tokenExtension}.\n     */\n    function tokenExtension(uint256 tokenId) public view virtual override returns (address extension) {\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 {IERC1155CreatorCore-burn}.\n     */\n    function burn(address account, uint256[] calldata tokenIds, uint256[] calldata amounts) public virtual override nonReentrant {\n        require(account == msg.sender || isApprovedForAll(account, msg.sender), \"Caller is not owner or approved\");\n        require(tokenIds.length == amounts.length, \"Invalid input\");\n        if (tokenIds.length == 1) {\n            _burn(account, tokenIds[0], amounts[0]);\n        } else {\n            _burnBatch(account, tokenIds, amounts);\n        }\n        _postBurn(account, tokenIds, amounts);\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        _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        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        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        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        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        return _getRoyaltyInfo(tokenId, value);\n    } \n\n    /**\n     * @dev See {IERC1155MetadataURI-uri}.\n     */\n    function uri(uint256 tokenId) public view virtual override returns (string memory) {\n        return _tokenURI(tokenId);\n    }\n    \n    /**\n     * @dev Total amount of tokens in with a given id.\n     */\n    function totalSupply(uint256 tokenId) external view virtual override returns (uint256) {\n        return _totalSupply[tokenId];\n    }\n\n    /**\n     * @dev See {ERC1155-_mint}.\n     */\n    function _mint(address account, uint256 id, uint256 amount, bytes memory data) internal virtual override {\n        super._mint(account, id, amount, data);\n        _totalSupply[id] += amount;\n    }\n\n    /**\n     * @dev See {ERC1155-_mintBatch}.\n     */\n    function _mintBatch(address to, uint256[] memory ids, uint256[] memory amounts, bytes memory data) internal virtual override {\n        super._mintBatch(to, ids, amounts, data);\n        for (uint i; i < ids.length;) {\n            _totalSupply[ids[i]] += amounts[i];\n            unchecked { ++i; }\n        }\n    }\n\n    /**\n     * @dev See {ERC1155-_burn}.\n     */\n    function _burn(address account, uint256 id, uint256 amount) internal virtual override {\n        super._burn(account, id, amount);\n        _totalSupply[id] -= amount;\n    }\n\n    /**\n     * @dev See {ERC1155-_burnBatch}.\n     */\n    function _burnBatch(address account, uint256[] memory ids, uint256[] memory amounts) internal virtual override {\n        super._burnBatch(account, ids, amounts);\n        for (uint i; i < ids.length;) {\n            _totalSupply[ids[i]] -= amounts[i];\n            unchecked { ++i; }\n        }\n    }\n\n    /**\n     * @dev See {ICreatorCore-setApproveTransfer}.\n     */\n    function setApproveTransfer(address extension) external override adminRequired {\n        _setApproveTransferBase(extension);\n    }\n}",
  "sourcePath": "/Users/chung/git/manifoldxyz/solidity/creator-core-solidity/contracts/ERC1155CreatorImplementation.sol",
  "ast": {
    "absolutePath": "project:/contracts/ERC1155CreatorImplementation.sol",
    "exportedSymbols": {
      "Address": [
        1911
      ],
      "AddressUpgradeable": [
        1002
      ],
      "AdminControlUpgradeable": [
        371
      ],
      "ContextUpgradeable": [
        1044
      ],
      "CreatorCore": [
        13473
      ],
      "ERC1155Core": [
        19726
      ],
      "ERC1155CreatorCore": [
        13854
      ],
      "ERC1155CreatorImplementation": [
        6821
      ],
      "ERC1155Upgradeable": [
        19778
      ],
      "ERC165": [
        2132
      ],
      "ERC165Checker": [
        2326
      ],
      "EnumerableSet": [
        3816
      ],
      "IAdminControl": [
        417
      ],
      "ICreatorCore": [
        15197
      ],
      "ICreatorExtensionRoyalties": [
        16574
      ],
      "ICreatorExtensionTokenURI": [
        16591
      ],
      "IERC1155": [
        1333
      ],
      "IERC1155CreatorCore": [
        15282
      ],
      "IERC1155CreatorExtensionApproveTransfer": [
        16055
      ],
      "IERC1155CreatorExtensionBurnable": [
        16074
      ],
      "IERC1155CreatorMintPermissions": [
        18396
      ],
      "IERC1155MetadataURI": [
        1389
      ],
      "IERC1155Receiver": [
        1374
      ],
      "IERC165": [
        2338
      ],
      "Initializable": [
        718
      ],
      "Math": [
        3203
      ],
      "OwnableUpgradeable": [
        549
      ],
      "ReentrancyGuard": [
        1211
      ],
      "Strings": [
        2108
      ]
    },
    "id": 6822,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 5317,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "33:23:25"
      },
      {
        "absolutePath": "@manifoldxyz/libraries-solidity/contracts/access/AdminControlUpgradeable.sol",
        "file": "@manifoldxyz/libraries-solidity/contracts/access/AdminControlUpgradeable.sol",
        "id": 5318,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 6822,
        "sourceUnit": 372,
        "src": "85:86:25",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/core/ERC1155CreatorCore.sol",
        "file": "./core/ERC1155CreatorCore.sol",
        "id": 5319,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 6822,
        "sourceUnit": 13855,
        "src": "173:39:25",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/token/ERC1155/ERC1155Upgradeable.sol",
        "file": "./token/ERC1155/ERC1155Upgradeable.sol",
        "id": 5320,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 6822,
        "sourceUnit": 19779,
        "src": "213:48:25",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 5322,
              "name": "AdminControlUpgradeable",
              "nameLocations": [
                "350:23:25"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 371,
              "src": "350:23:25"
            },
            "id": 5323,
            "nodeType": "InheritanceSpecifier",
            "src": "350:23:25"
          },
          {
            "baseName": {
              "id": 5324,
              "name": "ERC1155Upgradeable",
              "nameLocations": [
                "375:18:25"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 19778,
              "src": "375:18:25"
            },
            "id": 5325,
            "nodeType": "InheritanceSpecifier",
            "src": "375:18:25"
          },
          {
            "baseName": {
              "id": 5326,
              "name": "ERC1155CreatorCore",
              "nameLocations": [
                "395:18:25"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 13854,
              "src": "395:18:25"
            },
            "id": 5327,
            "nodeType": "InheritanceSpecifier",
            "src": "395:18:25"
          }
        ],
        "canonicalName": "ERC1155CreatorImplementation",
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": {
          "id": 5321,
          "nodeType": "StructuredDocumentation",
          "src": "263:45:25",
          "text": " @dev ERC1155Creator implementation"
        },
        "fullyImplemented": true,
        "id": 6821,
        "linearizedBaseContracts": [
          6821,
          13854,
          15282,
          13473,
          19778,
          19726,
          1389,
          1333,
          371,
          2132,
          15197,
          417,
          2338,
          1211,
          549,
          1044,
          718
        ],
        "name": "ERC1155CreatorImplementation",
        "nameLocation": "318:28:25",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "global": false,
            "id": 5331,
            "libraryName": {
              "id": 5328,
              "name": "EnumerableSet",
              "nameLocations": [
                "426:13:25"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 3816,
              "src": "426:13:25"
            },
            "nodeType": "UsingForDirective",
            "src": "420:49:25",
            "typeName": {
              "id": 5330,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 5329,
                "name": "EnumerableSet.AddressSet",
                "nameLocations": [
                  "444:13:25",
                  "458:10:25"
                ],
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 3529,
                "src": "444:24:25"
              },
              "referencedDeclaration": 3529,
              "src": "444:24:25",
              "typeDescriptions": {
                "typeIdentifier": "t_struct$_AddressSet_$3529_storage_ptr",
                "typeString": "struct EnumerableSet.AddressSet"
              }
            }
          },
          {
            "constant": false,
            "id": 5335,
            "mutability": "mutable",
            "name": "_totalSupply",
            "nameLocation": "511:12:25",
            "nodeType": "VariableDeclaration",
            "scope": 6821,
            "src": "475:48:25",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
              "typeString": "mapping(uint256 => uint256)"
            },
            "typeName": {
              "id": 5334,
              "keyName": "",
              "keyNameLocation": "-1:-1:-1",
              "keyType": {
                "id": 5332,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "483:7:25",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "475:27:25",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                "typeString": "mapping(uint256 => uint256)"
              },
              "valueName": "",
              "valueNameLocation": "-1:-1:-1",
              "valueType": {
                "id": 5333,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "494:7:25",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              }
            },
            "visibility": "private"
          },
          {
            "body": {
              "id": 5353,
              "nodeType": "Block",
              "src": "648:73:25",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5346,
                        "name": "_name",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5338,
                        "src": "673:5:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "id": 5347,
                        "name": "_symbol",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5340,
                        "src": "680:7:25",
                        "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": 5345,
                      "name": "__ERC1155_init",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 19759,
                      "src": "658:14:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_memory_ptr_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (string memory,string memory)"
                      }
                    },
                    "id": 5348,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "658:30:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5349,
                  "nodeType": "ExpressionStatement",
                  "src": "658:30:25"
                },
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 5350,
                      "name": "__Ownable_init",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 444,
                      "src": "698:14:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 5351,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "698:16:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5352,
                  "nodeType": "ExpressionStatement",
                  "src": "698:16:25"
                }
              ]
            },
            "documentation": {
              "id": 5336,
              "nodeType": "StructuredDocumentation",
              "src": "530:30:25",
              "text": " Initializer"
            },
            "functionSelector": "4cd88b76",
            "id": 5354,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 5343,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5342,
                  "name": "initializer",
                  "nameLocations": [
                    "636:11:25"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 620,
                  "src": "636:11:25"
                },
                "nodeType": "ModifierInvocation",
                "src": "636:11:25"
              }
            ],
            "name": "initialize",
            "nameLocation": "574:10:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5341,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5338,
                  "mutability": "mutable",
                  "name": "_name",
                  "nameLocation": "599:5:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5354,
                  "src": "585:19:25",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5337,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "585:6:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5340,
                  "mutability": "mutable",
                  "name": "_symbol",
                  "nameLocation": "620:7:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5354,
                  "src": "606:21:25",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5339,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "606:6:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "584:44:25"
            },
            "returnParameters": {
              "id": 5344,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "648:0:25"
            },
            "scope": 6821,
            "src": "565:156:25",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              228,
              13529,
              18586
            ],
            "body": {
              "id": 5381,
              "nodeType": "Block",
              "src": "937:177:25",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 5379,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "id": 5374,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "arguments": [
                          {
                            "id": 5368,
                            "name": "interfaceId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5357,
                            "src": "991:11:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 5366,
                            "name": "ERC1155CreatorCore",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13854,
                            "src": "954:18:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_ERC1155CreatorCore_$13854_$",
                              "typeString": "type(contract ERC1155CreatorCore)"
                            }
                          },
                          "id": 5367,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "973:17:25",
                          "memberName": "supportsInterface",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 13529,
                          "src": "954:36:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$",
                            "typeString": "function (bytes4) view returns (bool)"
                          }
                        },
                        "id": 5369,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "954:49:25",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "||",
                      "rightExpression": {
                        "arguments": [
                          {
                            "id": 5372,
                            "name": "interfaceId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5357,
                            "src": "1037:11:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_bytes4",
                              "typeString": "bytes4"
                            }
                          ],
                          "expression": {
                            "id": 5370,
                            "name": "ERC1155Core",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 19726,
                            "src": "1007:11:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_ERC1155Core_$19726_$",
                              "typeString": "type(contract ERC1155Core)"
                            }
                          },
                          "id": 5371,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "1019:17:25",
                          "memberName": "supportsInterface",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 18586,
                          "src": "1007:29:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$",
                            "typeString": "function (bytes4) view returns (bool)"
                          }
                        },
                        "id": 5373,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1007:42:25",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "src": "954:95:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "arguments": [
                        {
                          "id": 5377,
                          "name": "interfaceId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5357,
                          "src": "1095:11:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        ],
                        "expression": {
                          "id": 5375,
                          "name": "AdminControlUpgradeable",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 371,
                          "src": "1053:23:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_AdminControlUpgradeable_$371_$",
                            "typeString": "type(contract AdminControlUpgradeable)"
                          }
                        },
                        "id": 5376,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "1077:17:25",
                        "memberName": "supportsInterface",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 228,
                        "src": "1053:41:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$",
                          "typeString": "function (bytes4) view returns (bool)"
                        }
                      },
                      "id": 5378,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1053:54:25",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "954:153:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 5365,
                  "id": 5380,
                  "nodeType": "Return",
                  "src": "947:160:25"
                }
              ]
            },
            "documentation": {
              "id": 5355,
              "nodeType": "StructuredDocumentation",
              "src": "727:56:25",
              "text": " @dev See {IERC165-supportsInterface}."
            },
            "functionSelector": "01ffc9a7",
            "id": 5382,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "supportsInterface",
            "nameLocation": "797:17:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5362,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "id": 5359,
                  "name": "ERC1155Core",
                  "nameLocations": [
                    "864:11:25"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 19726,
                  "src": "864:11:25"
                },
                {
                  "id": 5360,
                  "name": "ERC1155CreatorCore",
                  "nameLocations": [
                    "877:18:25"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 13854,
                  "src": "877:18:25"
                },
                {
                  "id": 5361,
                  "name": "AdminControlUpgradeable",
                  "nameLocations": [
                    "897:23:25"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 371,
                  "src": "897:23:25"
                }
              ],
              "src": "855:66:25"
            },
            "parameters": {
              "id": 5358,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5357,
                  "mutability": "mutable",
                  "name": "interfaceId",
                  "nameLocation": "822:11:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5382,
                  "src": "815:18:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 5356,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "815:6:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "814:20:25"
            },
            "returnParameters": {
              "id": 5365,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5364,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5382,
                  "src": "931:4:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 5363,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "931:4:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "930:6:25"
            },
            "scope": 6821,
            "src": "788:326:25",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              19550
            ],
            "body": {
              "id": 5407,
              "nodeType": "Block",
              "src": "1273:57:25",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5401,
                        "name": "from",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5386,
                        "src": "1300:4:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 5402,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5388,
                        "src": "1306:2:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 5403,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5391,
                        "src": "1310:3:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "id": 5404,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5394,
                        "src": "1315:7:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      ],
                      "id": 5400,
                      "name": "_approveTransfer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13840,
                      "src": "1283:16:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (address,address,uint256[] memory,uint256[] memory)"
                      }
                    },
                    "id": 5405,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1283:40:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5406,
                  "nodeType": "ExpressionStatement",
                  "src": "1283:40:25"
                }
              ]
            },
            "id": 5408,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_beforeTokenTransfer",
            "nameLocation": "1129:20:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5398,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1264:8:25"
            },
            "parameters": {
              "id": 5397,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5384,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5408,
                  "src": "1150:7:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5383,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1150:7:25",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5386,
                  "mutability": "mutable",
                  "name": "from",
                  "nameLocation": "1167:4:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5408,
                  "src": "1159:12:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5385,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1159:7:25",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5388,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "1181:2:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5408,
                  "src": "1173:10:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5387,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1173:7:25",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5391,
                  "mutability": "mutable",
                  "name": "ids",
                  "nameLocation": "1202:3:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5408,
                  "src": "1185:20:25",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5389,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "1185:7:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 5390,
                    "nodeType": "ArrayTypeName",
                    "src": "1185:9:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5394,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "1224:7:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5408,
                  "src": "1207:24:25",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5392,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "1207:7:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 5393,
                    "nodeType": "ArrayTypeName",
                    "src": "1207:9:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5396,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5408,
                  "src": "1233:12:25",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 5395,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1233:5:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1149:97:25"
            },
            "returnParameters": {
              "id": 5399,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1273:0:25"
            },
            "scope": 6821,
            "src": "1120:210:25",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              14988
            ],
            "body": {
              "id": 5429,
              "nodeType": "Block",
              "src": "1505:102:25",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5420,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5411,
                        "src": "1535:9:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 5419,
                      "name": "requireNonBlacklist",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12566,
                      "src": "1515:19:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$",
                        "typeString": "function (address) view"
                      }
                    },
                    "id": 5421,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1515:30:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5422,
                  "nodeType": "ExpressionStatement",
                  "src": "1515:30:25"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5424,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5411,
                        "src": "1574:9:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 5425,
                        "name": "baseURI",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5413,
                        "src": "1585:7:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 5426,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1594:5:25",
                        "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": 5423,
                      "name": "_registerExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12664,
                      "src": "1555:18:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_calldata_ptr_$_t_bool_$returns$__$",
                        "typeString": "function (address,string calldata,bool)"
                      }
                    },
                    "id": 5427,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1555:45:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5428,
                  "nodeType": "ExpressionStatement",
                  "src": "1555:45:25"
                }
              ]
            },
            "documentation": {
              "id": 5409,
              "nodeType": "StructuredDocumentation",
              "src": "1336:61:25",
              "text": " @dev See {ICreatorCore-registerExtension}."
            },
            "functionSelector": "3071a0f9",
            "id": 5430,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 5417,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5416,
                  "name": "adminRequired",
                  "nameLocations": [
                    "1491:13:25"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "1491:13:25"
                },
                "nodeType": "ModifierInvocation",
                "src": "1491:13:25"
              }
            ],
            "name": "registerExtension",
            "nameLocation": "1411:17:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5415,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1482:8:25"
            },
            "parameters": {
              "id": 5414,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5411,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "1437:9:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5430,
                  "src": "1429:17:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5410,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1429:7:25",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5413,
                  "mutability": "mutable",
                  "name": "baseURI",
                  "nameLocation": "1464:7:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5430,
                  "src": "1448:23:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5412,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1448:6:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1428:44:25"
            },
            "returnParameters": {
              "id": 5418,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1505:0:25"
            },
            "scope": 6821,
            "src": "1402:205:25",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              14998
            ],
            "body": {
              "id": 5453,
              "nodeType": "Block",
              "src": "1805:113:25",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5444,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5433,
                        "src": "1835:9:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 5443,
                      "name": "requireNonBlacklist",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12566,
                      "src": "1815:19:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_address_$returns$__$",
                        "typeString": "function (address) view"
                      }
                    },
                    "id": 5445,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1815:30:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5446,
                  "nodeType": "ExpressionStatement",
                  "src": "1815:30:25"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5448,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5433,
                        "src": "1874:9:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 5449,
                        "name": "baseURI",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5435,
                        "src": "1885:7:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "id": 5450,
                        "name": "baseURIIdentical",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5437,
                        "src": "1894:16:25",
                        "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": 5447,
                      "name": "_registerExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12664,
                      "src": "1855:18:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_string_calldata_ptr_$_t_bool_$returns$__$",
                        "typeString": "function (address,string calldata,bool)"
                      }
                    },
                    "id": 5451,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1855:56:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5452,
                  "nodeType": "ExpressionStatement",
                  "src": "1855:56:25"
                }
              ]
            },
            "documentation": {
              "id": 5431,
              "nodeType": "StructuredDocumentation",
              "src": "1613:61:25",
              "text": " @dev See {ICreatorCore-registerExtension}."
            },
            "functionSelector": "3f0f37f6",
            "id": 5454,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 5441,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5440,
                  "name": "adminRequired",
                  "nameLocations": [
                    "1791:13:25"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "1791:13:25"
                },
                "nodeType": "ModifierInvocation",
                "src": "1791:13:25"
              }
            ],
            "name": "registerExtension",
            "nameLocation": "1688:17:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5439,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1782:8:25"
            },
            "parameters": {
              "id": 5438,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5433,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "1714:9:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5454,
                  "src": "1706:17:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5432,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1706:7:25",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5435,
                  "mutability": "mutable",
                  "name": "baseURI",
                  "nameLocation": "1741:7:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5454,
                  "src": "1725:23:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5434,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1725:6:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5437,
                  "mutability": "mutable",
                  "name": "baseURIIdentical",
                  "nameLocation": "1755:16:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5454,
                  "src": "1750:21:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 5436,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1750:4:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1705:67:25"
            },
            "returnParameters": {
              "id": 5442,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1805:0:25"
            },
            "scope": 6821,
            "src": "1679:239:25",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15004
            ],
            "body": {
              "id": 5467,
              "nodeType": "Block",
              "src": "2073:48:25",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5464,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5457,
                        "src": "2104:9:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 5463,
                      "name": "_unregisterExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12708,
                      "src": "2083:20:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 5465,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2083:31:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5466,
                  "nodeType": "ExpressionStatement",
                  "src": "2083:31:25"
                }
              ]
            },
            "documentation": {
              "id": 5455,
              "nodeType": "StructuredDocumentation",
              "src": "1925:63:25",
              "text": " @dev See {ICreatorCore-unregisterExtension}."
            },
            "functionSelector": "ce8aee9d",
            "id": 5468,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 5461,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5460,
                  "name": "adminRequired",
                  "nameLocations": [
                    "2059:13:25"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "2059:13:25"
                },
                "nodeType": "ModifierInvocation",
                "src": "2059:13:25"
              }
            ],
            "name": "unregisterExtension",
            "nameLocation": "2002:19:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5459,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2050:8:25"
            },
            "parameters": {
              "id": 5458,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5457,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "2030:9:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5468,
                  "src": "2022:17:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5456,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2022:7:25",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2021:19:25"
            },
            "returnParameters": {
              "id": 5462,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2073:0:25"
            },
            "scope": 6821,
            "src": "1993:128:25",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15010
            ],
            "body": {
              "id": 5481,
              "nodeType": "Block",
              "src": "2273:47:25",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5478,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5471,
                        "src": "2303:9:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 5477,
                      "name": "_blacklistExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12769,
                      "src": "2283:19:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 5479,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2283:30:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5480,
                  "nodeType": "ExpressionStatement",
                  "src": "2283:30:25"
                }
              ]
            },
            "documentation": {
              "id": 5469,
              "nodeType": "StructuredDocumentation",
              "src": "2127:62:25",
              "text": " @dev See {ICreatorCore-blacklistExtension}."
            },
            "functionSelector": "02e7afb7",
            "id": 5482,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 5475,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5474,
                  "name": "adminRequired",
                  "nameLocations": [
                    "2259:13:25"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "2259:13:25"
                },
                "nodeType": "ModifierInvocation",
                "src": "2259:13:25"
              }
            ],
            "name": "blacklistExtension",
            "nameLocation": "2203:18:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5473,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2250:8:25"
            },
            "parameters": {
              "id": 5472,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5471,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "2230:9:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5482,
                  "src": "2222:17:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5470,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2222:7:25",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2221:19:25"
            },
            "returnParameters": {
              "id": 5476,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2273:0:25"
            },
            "scope": 6821,
            "src": "2194:126:25",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15016
            ],
            "body": {
              "id": 5497,
              "nodeType": "Block",
              "src": "2473:83:25",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 5489,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "2483:16:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 5490,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2483:18:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5491,
                  "nodeType": "ExpressionStatement",
                  "src": "2483:18:25"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5493,
                        "name": "uri_",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5485,
                        "src": "2537:4:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "hexValue": "66616c7365",
                        "id": 5494,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "bool",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2543:5:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "value": "false"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5492,
                      "name": "_setBaseTokenURIExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12792,
                      "src": "2511:25:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_calldata_ptr_$_t_bool_$returns$__$",
                        "typeString": "function (string calldata,bool)"
                      }
                    },
                    "id": 5495,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2511:38:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5496,
                  "nodeType": "ExpressionStatement",
                  "src": "2511:38:25"
                }
              ]
            },
            "documentation": {
              "id": 5483,
              "nodeType": "StructuredDocumentation",
              "src": "2326:68:25",
              "text": " @dev See {ICreatorCore-setBaseTokenURIExtension}."
            },
            "functionSelector": "3e6134b8",
            "id": 5498,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setBaseTokenURIExtension",
            "nameLocation": "2408:24:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5487,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2464:8:25"
            },
            "parameters": {
              "id": 5486,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5485,
                  "mutability": "mutable",
                  "name": "uri_",
                  "nameLocation": "2449:4:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5498,
                  "src": "2433:20:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5484,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2433:6:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2432:22:25"
            },
            "returnParameters": {
              "id": 5488,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2473:0:25"
            },
            "scope": 6821,
            "src": "2399:157:25",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15024
            ],
            "body": {
              "id": 5515,
              "nodeType": "Block",
              "src": "2725:87:25",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 5507,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "2735:16:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 5508,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2735:18:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5509,
                  "nodeType": "ExpressionStatement",
                  "src": "2735:18:25"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5511,
                        "name": "uri_",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5501,
                        "src": "2789:4:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      },
                      {
                        "id": 5512,
                        "name": "identical",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5503,
                        "src": "2795:9:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 5510,
                      "name": "_setBaseTokenURIExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12792,
                      "src": "2763:25:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_calldata_ptr_$_t_bool_$returns$__$",
                        "typeString": "function (string calldata,bool)"
                      }
                    },
                    "id": 5513,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2763:42:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5514,
                  "nodeType": "ExpressionStatement",
                  "src": "2763:42:25"
                }
              ]
            },
            "documentation": {
              "id": 5499,
              "nodeType": "StructuredDocumentation",
              "src": "2562:68:25",
              "text": " @dev See {ICreatorCore-setBaseTokenURIExtension}."
            },
            "functionSelector": "82dcc0c8",
            "id": 5516,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setBaseTokenURIExtension",
            "nameLocation": "2644:24:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5505,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2716:8:25"
            },
            "parameters": {
              "id": 5504,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5501,
                  "mutability": "mutable",
                  "name": "uri_",
                  "nameLocation": "2685:4:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5516,
                  "src": "2669:20:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5500,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2669:6:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5503,
                  "mutability": "mutable",
                  "name": "identical",
                  "nameLocation": "2696:9:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5516,
                  "src": "2691:14:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 5502,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2691:4:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2668:38:25"
            },
            "returnParameters": {
              "id": 5506,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2725:0:25"
            },
            "scope": 6821,
            "src": "2635:177:25",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15030
            ],
            "body": {
              "id": 5530,
              "nodeType": "Block",
              "src": "2971:80:25",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 5523,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "2981:16:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 5524,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2981:18:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5525,
                  "nodeType": "ExpressionStatement",
                  "src": "2981:18:25"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5527,
                        "name": "prefix",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5519,
                        "src": "3037:6:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "id": 5526,
                      "name": "_setTokenURIPrefixExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12806,
                      "src": "3009:27:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_calldata_ptr_$returns$__$",
                        "typeString": "function (string calldata)"
                      }
                    },
                    "id": 5528,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3009:35:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5529,
                  "nodeType": "ExpressionStatement",
                  "src": "3009:35:25"
                }
              ]
            },
            "documentation": {
              "id": 5517,
              "nodeType": "StructuredDocumentation",
              "src": "2818:70:25",
              "text": " @dev See {ICreatorCore-setTokenURIPrefixExtension}."
            },
            "functionSelector": "66d1e9d0",
            "id": 5531,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setTokenURIPrefixExtension",
            "nameLocation": "2902:26:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5521,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2962:8:25"
            },
            "parameters": {
              "id": 5520,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5519,
                  "mutability": "mutable",
                  "name": "prefix",
                  "nameLocation": "2945:6:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5531,
                  "src": "2929:22:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5518,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "2929:6:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2928:24:25"
            },
            "returnParameters": {
              "id": 5522,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2971:0:25"
            },
            "scope": 6821,
            "src": "2893:158:25",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15038
            ],
            "body": {
              "id": 5548,
              "nodeType": "Block",
              "src": "3213:81:25",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 5540,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "3223:16:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 5541,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3223:18:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5542,
                  "nodeType": "ExpressionStatement",
                  "src": "3223:18:25"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5544,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5534,
                        "src": "3273:7:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 5545,
                        "name": "uri_",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5536,
                        "src": "3282:4:25",
                        "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": 5543,
                      "name": "_setTokenURIExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12831,
                      "src": "3251:21:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_calldata_ptr_$returns$__$",
                        "typeString": "function (uint256,string calldata)"
                      }
                    },
                    "id": 5546,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3251:36:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5547,
                  "nodeType": "ExpressionStatement",
                  "src": "3251:36:25"
                }
              ]
            },
            "documentation": {
              "id": 5532,
              "nodeType": "StructuredDocumentation",
              "src": "3057:64:25",
              "text": " @dev See {ICreatorCore-setTokenURIExtension}."
            },
            "functionSelector": "e92a89f6",
            "id": 5549,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setTokenURIExtension",
            "nameLocation": "3135:20:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5538,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3204:8:25"
            },
            "parameters": {
              "id": 5537,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5534,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "3164:7:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5549,
                  "src": "3156:15:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5533,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3156:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5536,
                  "mutability": "mutable",
                  "name": "uri_",
                  "nameLocation": "3189:4:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5549,
                  "src": "3173:20:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5535,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3173:6:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3155:39:25"
            },
            "returnParameters": {
              "id": 5539,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3213:0:25"
            },
            "scope": 6821,
            "src": "3126:168:25",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15048
            ],
            "body": {
              "id": 5594,
              "nodeType": "Block",
              "src": "3470:244:25",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 5560,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "3480:16:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 5561,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3480:18:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5562,
                  "nodeType": "ExpressionStatement",
                  "src": "3480:18:25"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5568,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 5564,
                            "name": "tokenIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5553,
                            "src": "3516:8:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 5565,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "3525:6:25",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "3516:15:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "expression": {
                            "id": 5566,
                            "name": "uris",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5556,
                            "src": "3535:4:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                              "typeString": "string calldata[] calldata"
                            }
                          },
                          "id": 5567,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "3540:6:25",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "3535:11:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "3516:30:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "496e76616c696420696e707574",
                        "id": 5569,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3548:15:25",
                        "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": 5563,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "3508:7:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5570,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3508:56:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5571,
                  "nodeType": "ExpressionStatement",
                  "src": "3508:56:25"
                },
                {
                  "body": {
                    "id": 5592,
                    "nodeType": "Block",
                    "src": "3609:99:25",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 5580,
                                "name": "tokenIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5553,
                                "src": "3645:8:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 5582,
                              "indexExpression": {
                                "id": 5581,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5573,
                                "src": "3654:1:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "3645:11:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "baseExpression": {
                                "id": 5583,
                                "name": "uris",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5556,
                                "src": "3658:4:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                                  "typeString": "string calldata[] calldata"
                                }
                              },
                              "id": 5585,
                              "indexExpression": {
                                "id": 5584,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5573,
                                "src": "3663:1:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "3658:7:25",
                              "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": 5579,
                            "name": "_setTokenURIExtension",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12831,
                            "src": "3623:21:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_calldata_ptr_$returns$__$",
                              "typeString": "function (uint256,string calldata)"
                            }
                          },
                          "id": 5586,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3623:43:25",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 5587,
                        "nodeType": "ExpressionStatement",
                        "src": "3623:43:25"
                      },
                      {
                        "id": 5591,
                        "nodeType": "UncheckedBlock",
                        "src": "3680:18:25",
                        "statements": [
                          {
                            "expression": {
                              "id": 5589,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "3692:3:25",
                              "subExpression": {
                                "id": 5588,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5573,
                                "src": "3694:1:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 5590,
                            "nodeType": "ExpressionStatement",
                            "src": "3692:3:25"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5578,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 5575,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5573,
                      "src": "3587:1:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 5576,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5553,
                        "src": "3591:8:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      "id": 5577,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "3600:6:25",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "3591:15:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3587:19:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 5593,
                  "initializationExpression": {
                    "assignments": [
                      5573
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 5573,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "3584:1:25",
                        "nodeType": "VariableDeclaration",
                        "scope": 5593,
                        "src": "3579:6:25",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 5572,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "3579:4:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 5574,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "3579:6:25"
                  },
                  "nodeType": "ForStatement",
                  "src": "3574:134:25"
                }
              ]
            },
            "documentation": {
              "id": 5550,
              "nodeType": "StructuredDocumentation",
              "src": "3300:64:25",
              "text": " @dev See {ICreatorCore-setTokenURIExtension}."
            },
            "functionSelector": "61e5bc6b",
            "id": 5595,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setTokenURIExtension",
            "nameLocation": "3378:20:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5558,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3461:8:25"
            },
            "parameters": {
              "id": 5557,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5553,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "3418:8:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5595,
                  "src": "3399:27:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5551,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "3399:7:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 5552,
                    "nodeType": "ArrayTypeName",
                    "src": "3399:9:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5556,
                  "mutability": "mutable",
                  "name": "uris",
                  "nameLocation": "3446:4:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5595,
                  "src": "3428:22:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "string[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5554,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "3428:6:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 5555,
                    "nodeType": "ArrayTypeName",
                    "src": "3428:8:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3398:53:25"
            },
            "returnParameters": {
              "id": 5559,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3470:0:25"
            },
            "scope": 6821,
            "src": "3369:345:25",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15054
            ],
            "body": {
              "id": 5608,
              "nodeType": "Block",
              "src": "3863:39:25",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5605,
                        "name": "uri_",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5598,
                        "src": "3890:4:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "id": 5604,
                      "name": "_setBaseTokenURI",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12847,
                      "src": "3873:16:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_calldata_ptr_$returns$__$",
                        "typeString": "function (string calldata)"
                      }
                    },
                    "id": 5606,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3873:22:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5607,
                  "nodeType": "ExpressionStatement",
                  "src": "3873:22:25"
                }
              ]
            },
            "documentation": {
              "id": 5596,
              "nodeType": "StructuredDocumentation",
              "src": "3720:59:25",
              "text": " @dev See {ICreatorCore-setBaseTokenURI}."
            },
            "functionSelector": "30176e13",
            "id": 5609,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 5602,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5601,
                  "name": "adminRequired",
                  "nameLocations": [
                    "3849:13:25"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "3849:13:25"
                },
                "nodeType": "ModifierInvocation",
                "src": "3849:13:25"
              }
            ],
            "name": "setBaseTokenURI",
            "nameLocation": "3793:15:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5600,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3840:8:25"
            },
            "parameters": {
              "id": 5599,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5598,
                  "mutability": "mutable",
                  "name": "uri_",
                  "nameLocation": "3825:4:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5609,
                  "src": "3809:20:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5597,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3809:6:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3808:22:25"
            },
            "returnParameters": {
              "id": 5603,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3863:0:25"
            },
            "scope": 6821,
            "src": "3784:118:25",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15060
            ],
            "body": {
              "id": 5622,
              "nodeType": "Block",
              "src": "4057:43:25",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5619,
                        "name": "prefix",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5612,
                        "src": "4086:6:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_calldata_ptr",
                          "typeString": "string calldata"
                        }
                      ],
                      "id": 5618,
                      "name": "_setTokenURIPrefix",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12863,
                      "src": "4067:18:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_string_calldata_ptr_$returns$__$",
                        "typeString": "function (string calldata)"
                      }
                    },
                    "id": 5620,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4067:26:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5621,
                  "nodeType": "ExpressionStatement",
                  "src": "4067:26:25"
                }
              ]
            },
            "documentation": {
              "id": 5610,
              "nodeType": "StructuredDocumentation",
              "src": "3908:61:25",
              "text": " @dev See {ICreatorCore-setTokenURIPrefix}."
            },
            "functionSelector": "99e0dd7c",
            "id": 5623,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 5616,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5615,
                  "name": "adminRequired",
                  "nameLocations": [
                    "4043:13:25"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "4043:13:25"
                },
                "nodeType": "ModifierInvocation",
                "src": "4043:13:25"
              }
            ],
            "name": "setTokenURIPrefix",
            "nameLocation": "3983:17:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5614,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4034:8:25"
            },
            "parameters": {
              "id": 5613,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5612,
                  "mutability": "mutable",
                  "name": "prefix",
                  "nameLocation": "4017:6:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5623,
                  "src": "4001:22:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5611,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "4001:6:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4000:24:25"
            },
            "returnParameters": {
              "id": 5617,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4057:0:25"
            },
            "scope": 6821,
            "src": "3974:126:25",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15068
            ],
            "body": {
              "id": 5639,
              "nodeType": "Block",
              "src": "4258:44:25",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5635,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5626,
                        "src": "4281:7:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 5636,
                        "name": "uri_",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5628,
                        "src": "4290:4:25",
                        "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": 5634,
                      "name": "_setTokenURI",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12898,
                      "src": "4268:12:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_calldata_ptr_$returns$__$",
                        "typeString": "function (uint256,string calldata)"
                      }
                    },
                    "id": 5637,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4268:27:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5638,
                  "nodeType": "ExpressionStatement",
                  "src": "4268:27:25"
                }
              ]
            },
            "documentation": {
              "id": 5624,
              "nodeType": "StructuredDocumentation",
              "src": "4106:55:25",
              "text": " @dev See {ICreatorCore-setTokenURI}."
            },
            "functionSelector": "162094c4",
            "id": 5640,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 5632,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5631,
                  "name": "adminRequired",
                  "nameLocations": [
                    "4244:13:25"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "4244:13:25"
                },
                "nodeType": "ModifierInvocation",
                "src": "4244:13:25"
              }
            ],
            "name": "setTokenURI",
            "nameLocation": "4175:11:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5630,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4235:8:25"
            },
            "parameters": {
              "id": 5629,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5626,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "4195:7:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5640,
                  "src": "4187:15:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5625,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4187:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5628,
                  "mutability": "mutable",
                  "name": "uri_",
                  "nameLocation": "4220:4:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5640,
                  "src": "4204:20:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 5627,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "4204:6:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4186:39:25"
            },
            "returnParameters": {
              "id": 5633,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4258:0:25"
            },
            "scope": 6821,
            "src": "4166:136:25",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15078
            ],
            "body": {
              "id": 5684,
              "nodeType": "Block",
              "src": "4474:207:25",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5658,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 5654,
                            "name": "tokenIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5644,
                            "src": "4492:8:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 5655,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "4501:6:25",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "4492:15:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "expression": {
                            "id": 5656,
                            "name": "uris",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5647,
                            "src": "4511:4:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                              "typeString": "string calldata[] calldata"
                            }
                          },
                          "id": 5657,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "4516:6:25",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "4511:11:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "4492:30:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "496e76616c696420696e707574",
                        "id": 5659,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4524:15:25",
                        "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": 5653,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "4484:7:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5660,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4484:56:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5661,
                  "nodeType": "ExpressionStatement",
                  "src": "4484:56:25"
                },
                {
                  "body": {
                    "id": 5682,
                    "nodeType": "Block",
                    "src": "4585:90:25",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 5670,
                                "name": "tokenIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5644,
                                "src": "4612:8:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 5672,
                              "indexExpression": {
                                "id": 5671,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5663,
                                "src": "4621:1:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "4612:11:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "baseExpression": {
                                "id": 5673,
                                "name": "uris",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5647,
                                "src": "4625:4:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                                  "typeString": "string calldata[] calldata"
                                }
                              },
                              "id": 5675,
                              "indexExpression": {
                                "id": 5674,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5663,
                                "src": "4630:1:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "4625:7:25",
                              "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": 5669,
                            "name": "_setTokenURI",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12898,
                            "src": "4599:12:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_uint256_$_t_string_calldata_ptr_$returns$__$",
                              "typeString": "function (uint256,string calldata)"
                            }
                          },
                          "id": 5676,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "4599:34:25",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 5677,
                        "nodeType": "ExpressionStatement",
                        "src": "4599:34:25"
                      },
                      {
                        "id": 5681,
                        "nodeType": "UncheckedBlock",
                        "src": "4647:18:25",
                        "statements": [
                          {
                            "expression": {
                              "id": 5679,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "4659:3:25",
                              "subExpression": {
                                "id": 5678,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5663,
                                "src": "4661:1:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 5680,
                            "nodeType": "ExpressionStatement",
                            "src": "4659:3:25"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5668,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 5665,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5663,
                      "src": "4563:1:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 5666,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5644,
                        "src": "4567:8:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      "id": 5667,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "4576:6:25",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "4567:15:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4563:19:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 5683,
                  "initializationExpression": {
                    "assignments": [
                      5663
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 5663,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "4560:1:25",
                        "nodeType": "VariableDeclaration",
                        "scope": 5683,
                        "src": "4555:6:25",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 5662,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "4555:4:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 5664,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "4555:6:25"
                  },
                  "nodeType": "ForStatement",
                  "src": "4550:125:25"
                }
              ]
            },
            "documentation": {
              "id": 5641,
              "nodeType": "StructuredDocumentation",
              "src": "4308:55:25",
              "text": " @dev See {ICreatorCore-setTokenURI}."
            },
            "functionSelector": "aafb2d44",
            "id": 5685,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 5651,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5650,
                  "name": "adminRequired",
                  "nameLocations": [
                    "4460:13:25"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "4460:13:25"
                },
                "nodeType": "ModifierInvocation",
                "src": "4460:13:25"
              }
            ],
            "name": "setTokenURI",
            "nameLocation": "4377:11:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5649,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4451:8:25"
            },
            "parameters": {
              "id": 5648,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5644,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "4408:8:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5685,
                  "src": "4389:27:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5642,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "4389:7:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 5643,
                    "nodeType": "ArrayTypeName",
                    "src": "4389:9:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5647,
                  "mutability": "mutable",
                  "name": "uris",
                  "nameLocation": "4436:4:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5685,
                  "src": "4418:22:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "string[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5645,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "4418:6:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 5646,
                    "nodeType": "ArrayTypeName",
                    "src": "4418:8:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4388:53:25"
            },
            "returnParameters": {
              "id": 5652,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4474:0:25"
            },
            "scope": 6821,
            "src": "4368:313:25",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15086
            ],
            "body": {
              "id": 5701,
              "nodeType": "Block",
              "src": "4854:60:25",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5697,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5688,
                        "src": "4884:9:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 5698,
                        "name": "permissions",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5690,
                        "src": "4895:11:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 5696,
                      "name": "_setMintPermissions",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13616,
                      "src": "4864:19:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_address_$returns$__$",
                        "typeString": "function (address,address)"
                      }
                    },
                    "id": 5699,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4864:43:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5700,
                  "nodeType": "ExpressionStatement",
                  "src": "4864:43:25"
                }
              ]
            },
            "documentation": {
              "id": 5686,
              "nodeType": "StructuredDocumentation",
              "src": "4687:62:25",
              "text": " @dev See {ICreatorCore-setMintPermissions}."
            },
            "functionSelector": "f0cdc499",
            "id": 5702,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 5694,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5693,
                  "name": "adminRequired",
                  "nameLocations": [
                    "4840:13:25"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "4840:13:25"
                },
                "nodeType": "ModifierInvocation",
                "src": "4840:13:25"
              }
            ],
            "name": "setMintPermissions",
            "nameLocation": "4763:18:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5692,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4831:8:25"
            },
            "parameters": {
              "id": 5691,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5688,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "4790:9:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5702,
                  "src": "4782:17:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5687,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4782:7:25",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5690,
                  "mutability": "mutable",
                  "name": "permissions",
                  "nameLocation": "4809:11:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5702,
                  "src": "4801:19:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5689,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4801:7:25",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4781:40:25"
            },
            "returnParameters": {
              "id": 5695,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4854:0:25"
            },
            "scope": 6821,
            "src": "4754:160:25",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15219
            ],
            "body": {
              "id": 5733,
              "nodeType": "Block",
              "src": "5160:63:25",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 5726,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5194:1:25",
                            "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": 5725,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5186:7:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 5724,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "5186:7:25",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 5727,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5186:10:25",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 5728,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5706,
                        "src": "5198:2:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      },
                      {
                        "id": 5729,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5709,
                        "src": "5202:7:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      {
                        "id": 5730,
                        "name": "uris",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5712,
                        "src": "5211:4:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "string calldata[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "string calldata[] calldata"
                        }
                      ],
                      "id": 5723,
                      "name": "_mintNew",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6161,
                      "src": "5177:8:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
                        "typeString": "function (address,address[] calldata,uint256[] calldata,string calldata[] calldata) returns (uint256[] memory)"
                      }
                    },
                    "id": 5731,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5177:39:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "functionReturnParameters": 5722,
                  "id": 5732,
                  "nodeType": "Return",
                  "src": "5170:46:25"
                }
              ]
            },
            "documentation": {
              "id": 5703,
              "nodeType": "StructuredDocumentation",
              "src": "4920:62:25",
              "text": " @dev See {IERC1155CreatorCore-mintBaseNew}."
            },
            "functionSelector": "feeb5a9a",
            "id": 5734,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 5716,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5715,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "5107:12:25"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "5107:12:25"
                },
                "nodeType": "ModifierInvocation",
                "src": "5107:12:25"
              },
              {
                "id": 5718,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5717,
                  "name": "adminRequired",
                  "nameLocations": [
                    "5120:13:25"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "5120:13:25"
                },
                "nodeType": "ModifierInvocation",
                "src": "5120:13:25"
              }
            ],
            "name": "mintBaseNew",
            "nameLocation": "4996:11:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5714,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5098:8:25"
            },
            "parameters": {
              "id": 5713,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5706,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "5027:2:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5734,
                  "src": "5008:21:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5704,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "5008:7:25",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 5705,
                    "nodeType": "ArrayTypeName",
                    "src": "5008:9:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5709,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "5050:7:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5734,
                  "src": "5031:26:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5707,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "5031:7:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 5708,
                    "nodeType": "ArrayTypeName",
                    "src": "5031:9:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5712,
                  "mutability": "mutable",
                  "name": "uris",
                  "nameLocation": "5077:4:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5734,
                  "src": "5059:22:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "string[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5710,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "5059:6:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 5711,
                    "nodeType": "ArrayTypeName",
                    "src": "5059:8:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5007:75:25"
            },
            "returnParameters": {
              "id": 5722,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5721,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 5734,
                  "src": "5142:16:25",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5719,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "5142:7:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 5720,
                    "nodeType": "ArrayTypeName",
                    "src": "5142:9:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5141:18:25"
            },
            "scope": 6821,
            "src": "4987:236:25",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15232
            ],
            "body": {
              "id": 5804,
              "nodeType": "Block",
              "src": "5458:362:25",
              "statements": [
                {
                  "body": {
                    "id": 5792,
                    "nodeType": "Block",
                    "src": "5503:253:25",
                    "statements": [
                      {
                        "assignments": [
                          5760
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 5760,
                            "mutability": "mutable",
                            "name": "tokenId",
                            "nameLocation": "5525:7:25",
                            "nodeType": "VariableDeclaration",
                            "scope": 5792,
                            "src": "5517:15:25",
                            "stateVariable": false,
                            "storageLocation": "default",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "typeName": {
                              "id": 5759,
                              "name": "uint256",
                              "nodeType": "ElementaryTypeName",
                              "src": "5517:7:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 5764,
                        "initialValue": {
                          "baseExpression": {
                            "id": 5761,
                            "name": "tokenIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5741,
                            "src": "5535:8:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 5763,
                          "indexExpression": {
                            "id": 5762,
                            "name": "i",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5753,
                            "src": "5544:1:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "5535:11:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "5517:29:25"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "id": 5772,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 5768,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 5766,
                                  "name": "tokenId",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5760,
                                  "src": "5568:7:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": ">",
                                "rightExpression": {
                                  "hexValue": "30",
                                  "id": 5767,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "5578:1:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "5568:11:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "&&",
                              "rightExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 5771,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 5769,
                                  "name": "tokenId",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5760,
                                  "src": "5583:7:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<=",
                                "rightExpression": {
                                  "id": 5770,
                                  "name": "_tokenCount",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 12432,
                                  "src": "5594:11:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "5583:22:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "src": "5568:37:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "hexValue": "496e76616c696420746f6b656e",
                              "id": 5773,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5607:15:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_5e70ebd1d4072d337a7fabaa7bda70fa2633d6e3f89d5cb725a16b10d07e54c6",
                                "typeString": "literal_string \"Invalid token\""
                              },
                              "value": "Invalid token"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_5e70ebd1d4072d337a7fabaa7bda70fa2633d6e3f89d5cb725a16b10d07e54c6",
                                "typeString": "literal_string \"Invalid token\""
                              }
                            ],
                            "id": 5765,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              4294967278,
                              4294967278
                            ],
                            "referencedDeclaration": 4294967278,
                            "src": "5560:7:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 5774,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5560:63:25",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 5775,
                        "nodeType": "ExpressionStatement",
                        "src": "5560:63:25"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "id": 5784,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "arguments": [
                                  {
                                    "id": 5778,
                                    "name": "tokenId",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5760,
                                    "src": "5661:7:25",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 5777,
                                  "name": "_tokenExtension",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [
                                    13853
                                  ],
                                  "referencedDeclaration": 13853,
                                  "src": "5645:15:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
                                    "typeString": "function (uint256) view returns (address)"
                                  }
                                },
                                "id": 5779,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5645:24:25",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "arguments": [
                                  {
                                    "hexValue": "30",
                                    "id": 5782,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "5681:1:25",
                                    "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": 5781,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "5673:7:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_address_$",
                                    "typeString": "type(address)"
                                  },
                                  "typeName": {
                                    "id": 5780,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "5673:7:25",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 5783,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "5673:10:25",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "src": "5645:38:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "hexValue": "546f6b656e206372656174656420627920657874656e73696f6e",
                              "id": 5785,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "5685:28:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_dc957dacd2461b3477c266babc54966f3d592be89b3105889f0576b7147ce9bb",
                                "typeString": "literal_string \"Token created by extension\""
                              },
                              "value": "Token created by extension"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_dc957dacd2461b3477c266babc54966f3d592be89b3105889f0576b7147ce9bb",
                                "typeString": "literal_string \"Token created by extension\""
                              }
                            ],
                            "id": 5776,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              4294967278,
                              4294967278
                            ],
                            "referencedDeclaration": 4294967278,
                            "src": "5637:7:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 5786,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "5637:77:25",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 5787,
                        "nodeType": "ExpressionStatement",
                        "src": "5637:77:25"
                      },
                      {
                        "id": 5791,
                        "nodeType": "UncheckedBlock",
                        "src": "5728:18:25",
                        "statements": [
                          {
                            "expression": {
                              "id": 5789,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "5740:3:25",
                              "subExpression": {
                                "id": 5788,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5753,
                                "src": "5742:1:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 5790,
                            "nodeType": "ExpressionStatement",
                            "src": "5740:3:25"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5758,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 5755,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5753,
                      "src": "5481:1:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 5756,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5741,
                        "src": "5485:8:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      "id": 5757,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "5494:6:25",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "5485:15:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "5481:19:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 5793,
                  "initializationExpression": {
                    "assignments": [
                      5753
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 5753,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "5478:1:25",
                        "nodeType": "VariableDeclaration",
                        "scope": 5793,
                        "src": "5473:6:25",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 5752,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "5473:4:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 5754,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "5473:6:25"
                  },
                  "nodeType": "ForStatement",
                  "src": "5468:288:25"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 5797,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "5787:1:25",
                            "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": 5796,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "5779:7:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 5795,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "5779:7:25",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 5798,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "5779:10:25",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 5799,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5738,
                        "src": "5791:2:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      },
                      {
                        "id": 5800,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5741,
                        "src": "5795:8:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      {
                        "id": 5801,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5744,
                        "src": "5805:7:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      ],
                      "id": 5794,
                      "name": "_mintExisting",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6375,
                      "src": "5765:13:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$",
                        "typeString": "function (address,address[] calldata,uint256[] calldata,uint256[] calldata)"
                      }
                    },
                    "id": 5802,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5765:48:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5803,
                  "nodeType": "ExpressionStatement",
                  "src": "5765:48:25"
                }
              ]
            },
            "documentation": {
              "id": 5735,
              "nodeType": "StructuredDocumentation",
              "src": "5229:67:25",
              "text": " @dev See {IERC1155CreatorCore-mintBaseExisting}."
            },
            "functionSelector": "695c96e6",
            "id": 5805,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 5748,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5747,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "5431:12:25"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "5431:12:25"
                },
                "nodeType": "ModifierInvocation",
                "src": "5431:12:25"
              },
              {
                "id": 5750,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5749,
                  "name": "adminRequired",
                  "nameLocations": [
                    "5444:13:25"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "5444:13:25"
                },
                "nodeType": "ModifierInvocation",
                "src": "5444:13:25"
              }
            ],
            "name": "mintBaseExisting",
            "nameLocation": "5310:16:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5746,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5422:8:25"
            },
            "parameters": {
              "id": 5745,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5738,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "5346:2:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5805,
                  "src": "5327:21:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5736,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "5327:7:25",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 5737,
                    "nodeType": "ArrayTypeName",
                    "src": "5327:9:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5741,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "5369:8:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5805,
                  "src": "5350:27:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5739,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "5350:7:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 5740,
                    "nodeType": "ArrayTypeName",
                    "src": "5350:9:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5744,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "5398:7:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5805,
                  "src": "5379:26:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5742,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "5379:7:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 5743,
                    "nodeType": "ArrayTypeName",
                    "src": "5379:9:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5326:80:25"
            },
            "returnParameters": {
              "id": 5751,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5458:0:25"
            },
            "scope": 6821,
            "src": "5301:519:25",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15248
            ],
            "body": {
              "id": 5835,
              "nodeType": "Block",
              "src": "6071:91:25",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 5824,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "6081:16:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 5825,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6081:18:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5826,
                  "nodeType": "ExpressionStatement",
                  "src": "6081:18:25"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 5828,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967281,
                          "src": "6125:3:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5829,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "6129:6:25",
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "6125:10:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 5830,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5809,
                        "src": "6137:2:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      },
                      {
                        "id": 5831,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5812,
                        "src": "6141:7:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      {
                        "id": 5832,
                        "name": "uris",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5815,
                        "src": "6150:4:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "string calldata[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                          "typeString": "string calldata[] calldata"
                        }
                      ],
                      "id": 5827,
                      "name": "_mintNew",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6161,
                      "src": "6116:8:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_string_calldata_ptr_$dyn_calldata_ptr_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
                        "typeString": "function (address,address[] calldata,uint256[] calldata,string calldata[] calldata) returns (uint256[] memory)"
                      }
                    },
                    "id": 5833,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6116:39:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "functionReturnParameters": 5823,
                  "id": 5834,
                  "nodeType": "Return",
                  "src": "6109:46:25"
                }
              ]
            },
            "documentation": {
              "id": 5806,
              "nodeType": "StructuredDocumentation",
              "src": "5826:67:25",
              "text": " @dev See {IERC1155CreatorCore-mintExtensionNew}."
            },
            "functionSelector": "8c6e8472",
            "id": 5836,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 5819,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5818,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "6023:12:25"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "6023:12:25"
                },
                "nodeType": "ModifierInvocation",
                "src": "6023:12:25"
              }
            ],
            "name": "mintExtensionNew",
            "nameLocation": "5907:16:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5817,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6014:8:25"
            },
            "parameters": {
              "id": 5816,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5809,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "5943:2:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5836,
                  "src": "5924:21:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5807,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "5924:7:25",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 5808,
                    "nodeType": "ArrayTypeName",
                    "src": "5924:9:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5812,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "5966:7:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5836,
                  "src": "5947:26:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5810,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "5947:7:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 5811,
                    "nodeType": "ArrayTypeName",
                    "src": "5947:9:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5815,
                  "mutability": "mutable",
                  "name": "uris",
                  "nameLocation": "5993:4:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5836,
                  "src": "5975:22:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "string[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5813,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "5975:6:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 5814,
                    "nodeType": "ArrayTypeName",
                    "src": "5975:8:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5923:75:25"
            },
            "returnParameters": {
              "id": 5823,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5822,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "6061:8:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5836,
                  "src": "6044:25:25",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5820,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "6044:7:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 5821,
                    "nodeType": "ArrayTypeName",
                    "src": "6044:9:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6043:27:25"
            },
            "scope": 6821,
            "src": "5898:264:25",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15261
            ],
            "body": {
              "id": 5891,
              "nodeType": "Block",
              "src": "6393:292:25",
              "statements": [
                {
                  "expression": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 5852,
                      "name": "requireExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 12550,
                      "src": "6403:16:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$__$",
                        "typeString": "function () view"
                      }
                    },
                    "id": 5853,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6403:18:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5854,
                  "nodeType": "ExpressionStatement",
                  "src": "6403:18:25"
                },
                {
                  "body": {
                    "id": 5881,
                    "nodeType": "Block",
                    "src": "6466:155:25",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              "id": 5873,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "arguments": [
                                  {
                                    "baseExpression": {
                                      "id": 5864,
                                      "name": "tokenIds",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5843,
                                      "src": "6504:8:25",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                        "typeString": "uint256[] calldata"
                                      }
                                    },
                                    "id": 5866,
                                    "indexExpression": {
                                      "id": 5865,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5856,
                                      "src": "6513:1:25",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "6504:11:25",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 5863,
                                  "name": "_tokenExtension",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [
                                    13853
                                  ],
                                  "referencedDeclaration": 13853,
                                  "src": "6488:15:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
                                    "typeString": "function (uint256) view returns (address)"
                                  }
                                },
                                "id": 5867,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6488:28:25",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "arguments": [
                                  {
                                    "expression": {
                                      "id": 5870,
                                      "name": "msg",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 4294967281,
                                      "src": "6528:3:25",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_magic_message",
                                        "typeString": "msg"
                                      }
                                    },
                                    "id": 5871,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "6532:6:25",
                                    "memberName": "sender",
                                    "nodeType": "MemberAccess",
                                    "src": "6528:10:25",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "id": 5869,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "6520:7:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_address_$",
                                    "typeString": "type(address)"
                                  },
                                  "typeName": {
                                    "id": 5868,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "6520:7:25",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 5872,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "6520:19:25",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "src": "6488:51:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "hexValue": "546f6b656e206e6f742063726561746564206279207468697320657874656e73696f6e",
                              "id": 5874,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "6541:37:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_3544294527bbdb8eb31f7a9e1779b327bcda38b16dd495ae2505691136d011a2",
                                "typeString": "literal_string \"Token not created by this extension\""
                              },
                              "value": "Token not created by this extension"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_3544294527bbdb8eb31f7a9e1779b327bcda38b16dd495ae2505691136d011a2",
                                "typeString": "literal_string \"Token not created by this extension\""
                              }
                            ],
                            "id": 5862,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              4294967278,
                              4294967278
                            ],
                            "referencedDeclaration": 4294967278,
                            "src": "6480:7:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 5875,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "6480:99:25",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 5876,
                        "nodeType": "ExpressionStatement",
                        "src": "6480:99:25"
                      },
                      {
                        "id": 5880,
                        "nodeType": "UncheckedBlock",
                        "src": "6593:18:25",
                        "statements": [
                          {
                            "expression": {
                              "id": 5878,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "6605:3:25",
                              "subExpression": {
                                "id": 5877,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5856,
                                "src": "6607:1:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 5879,
                            "nodeType": "ExpressionStatement",
                            "src": "6605:3:25"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5861,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 5858,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5856,
                      "src": "6444:1:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 5859,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5843,
                        "src": "6448:8:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      "id": 5860,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6457:6:25",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "6448:15:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "6444:19:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 5882,
                  "initializationExpression": {
                    "assignments": [
                      5856
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 5856,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "6441:1:25",
                        "nodeType": "VariableDeclaration",
                        "scope": 5882,
                        "src": "6436:6:25",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 5855,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "6436:4:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 5857,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "6436:6:25"
                  },
                  "nodeType": "ForStatement",
                  "src": "6431:190:25"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 5884,
                          "name": "msg",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967281,
                          "src": "6644:3:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_message",
                            "typeString": "msg"
                          }
                        },
                        "id": 5885,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "6648:6:25",
                        "memberName": "sender",
                        "nodeType": "MemberAccess",
                        "src": "6644:10:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 5886,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5840,
                        "src": "6656:2:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      },
                      {
                        "id": 5887,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5843,
                        "src": "6660:8:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      {
                        "id": 5888,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5846,
                        "src": "6670:7:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      ],
                      "id": 5883,
                      "name": "_mintExisting",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6375,
                      "src": "6630:13:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_address_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$",
                        "typeString": "function (address,address[] calldata,uint256[] calldata,uint256[] calldata)"
                      }
                    },
                    "id": 5889,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6630:48:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5890,
                  "nodeType": "ExpressionStatement",
                  "src": "6630:48:25"
                }
              ]
            },
            "documentation": {
              "id": 5837,
              "nodeType": "StructuredDocumentation",
              "src": "6168:72:25",
              "text": " @dev See {IERC1155CreatorCore-mintExtensionExisting}."
            },
            "functionSelector": "e6c884dc",
            "id": 5892,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 5850,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 5849,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "6380:12:25"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "6380:12:25"
                },
                "nodeType": "ModifierInvocation",
                "src": "6380:12:25"
              }
            ],
            "name": "mintExtensionExisting",
            "nameLocation": "6254:21:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5848,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6371:8:25"
            },
            "parameters": {
              "id": 5847,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5840,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "6295:2:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5892,
                  "src": "6276:21:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5838,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "6276:7:25",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 5839,
                    "nodeType": "ArrayTypeName",
                    "src": "6276:9:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5843,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "6318:8:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5892,
                  "src": "6299:27:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5841,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "6299:7:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 5842,
                    "nodeType": "ArrayTypeName",
                    "src": "6299:9:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5846,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "6347:7:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 5892,
                  "src": "6328:26:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5844,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "6328:7:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 5845,
                    "nodeType": "ArrayTypeName",
                    "src": "6328:9:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6275:80:25"
            },
            "returnParameters": {
              "id": 5851,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6393:0:25"
            },
            "scope": 6821,
            "src": "6245:440:25",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6160,
              "nodeType": "Block",
              "src": "6891:1980:25",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5913,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 5910,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5898,
                        "src": "6905:2:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                          "typeString": "address[] calldata"
                        }
                      },
                      "id": 5911,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "6908:6:25",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "6905:9:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "31",
                      "id": 5912,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "6917:1:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "6905:13:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 5966,
                    "nodeType": "Block",
                    "src": "7164:214:25",
                    "statements": [
                      {
                        "expression": {
                          "id": 5950,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 5943,
                            "name": "tokenIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5908,
                            "src": "7238:8:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                              "typeString": "uint256[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "expression": {
                                  "id": 5947,
                                  "name": "amounts",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5901,
                                  "src": "7263:7:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                    "typeString": "uint256[] calldata"
                                  }
                                },
                                "id": 5948,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "7271:6:25",
                                "memberName": "length",
                                "nodeType": "MemberAccess",
                                "src": "7263:14:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              ],
                              "id": 5946,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "7249:13:25",
                              "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": 5944,
                                  "name": "uint256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "7253:7:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 5945,
                                "nodeType": "ArrayTypeName",
                                "src": "7253:9:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                                  "typeString": "uint256[]"
                                }
                              }
                            },
                            "id": 5949,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7249:29:25",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                              "typeString": "uint256[] memory"
                            }
                          },
                          "src": "7238:40:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                            "typeString": "uint256[] memory"
                          }
                        },
                        "id": 5951,
                        "nodeType": "ExpressionStatement",
                        "src": "7238:40:25"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "id": 5962,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 5956,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "expression": {
                                    "id": 5953,
                                    "name": "uris",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5904,
                                    "src": "7300:4:25",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                                      "typeString": "string calldata[] calldata"
                                    }
                                  },
                                  "id": 5954,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "7305:6:25",
                                  "memberName": "length",
                                  "nodeType": "MemberAccess",
                                  "src": "7300:11:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "==",
                                "rightExpression": {
                                  "hexValue": "30",
                                  "id": 5955,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "7315:1:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "src": "7300:16:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "||",
                              "rightExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 5961,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "expression": {
                                    "id": 5957,
                                    "name": "amounts",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5901,
                                    "src": "7320:7:25",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                      "typeString": "uint256[] calldata"
                                    }
                                  },
                                  "id": 5958,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "7328:6:25",
                                  "memberName": "length",
                                  "nodeType": "MemberAccess",
                                  "src": "7320:14:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "==",
                                "rightExpression": {
                                  "expression": {
                                    "id": 5959,
                                    "name": "uris",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5904,
                                    "src": "7338:4:25",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                                      "typeString": "string calldata[] calldata"
                                    }
                                  },
                                  "id": 5960,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "7343:6:25",
                                  "memberName": "length",
                                  "nodeType": "MemberAccess",
                                  "src": "7338:11:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "7320:29:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "src": "7300:49:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "hexValue": "496e76616c696420696e707574",
                              "id": 5963,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7351:15:25",
                              "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": 5952,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              4294967278,
                              4294967278
                            ],
                            "referencedDeclaration": 4294967278,
                            "src": "7292:7:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 5964,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7292:75:25",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 5965,
                        "nodeType": "ExpressionStatement",
                        "src": "7292:75:25"
                      }
                    ]
                  },
                  "id": 5967,
                  "nodeType": "IfStatement",
                  "src": "6901:477:25",
                  "trueBody": {
                    "id": 5942,
                    "nodeType": "Block",
                    "src": "6920:238:25",
                    "statements": [
                      {
                        "expression": {
                          "id": 5920,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "id": 5914,
                            "name": "tokenIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5908,
                            "src": "7008:8:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                              "typeString": "uint256[] memory"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "arguments": [
                              {
                                "hexValue": "31",
                                "id": 5918,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7033:1:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                },
                                "value": "1"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_1_by_1",
                                  "typeString": "int_const 1"
                                }
                              ],
                              "id": 5917,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "NewExpression",
                              "src": "7019:13:25",
                              "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": 5915,
                                  "name": "uint256",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "7023:7:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "id": 5916,
                                "nodeType": "ArrayTypeName",
                                "src": "7023:9:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                                  "typeString": "uint256[]"
                                }
                              }
                            },
                            "id": 5919,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "7019:16:25",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                              "typeString": "uint256[] memory"
                            }
                          },
                          "src": "7008:27:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                            "typeString": "uint256[] memory"
                          }
                        },
                        "id": 5921,
                        "nodeType": "ExpressionStatement",
                        "src": "7008:27:25"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              "id": 5938,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 5926,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "expression": {
                                    "id": 5923,
                                    "name": "uris",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5904,
                                    "src": "7057:4:25",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                                      "typeString": "string calldata[] calldata"
                                    }
                                  },
                                  "id": 5924,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "7062:6:25",
                                  "memberName": "length",
                                  "nodeType": "MemberAccess",
                                  "src": "7057:11:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<=",
                                "rightExpression": {
                                  "hexValue": "31",
                                  "id": 5925,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "7072:1:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_1_by_1",
                                    "typeString": "int_const 1"
                                  },
                                  "value": "1"
                                },
                                "src": "7057:16:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "&&",
                              "rightExpression": {
                                "components": [
                                  {
                                    "commonType": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    },
                                    "id": 5936,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 5930,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "expression": {
                                          "id": 5927,
                                          "name": "amounts",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 5901,
                                          "src": "7078:7:25",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                            "typeString": "uint256[] calldata"
                                          }
                                        },
                                        "id": 5928,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "7086:6:25",
                                        "memberName": "length",
                                        "nodeType": "MemberAccess",
                                        "src": "7078:14:25",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "==",
                                      "rightExpression": {
                                        "hexValue": "31",
                                        "id": 5929,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "number",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "7096:1:25",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_rational_1_by_1",
                                          "typeString": "int_const 1"
                                        },
                                        "value": "1"
                                      },
                                      "src": "7078:19:25",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "||",
                                    "rightExpression": {
                                      "commonType": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "id": 5935,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftExpression": {
                                        "expression": {
                                          "id": 5931,
                                          "name": "to",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 5898,
                                          "src": "7101:2:25",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                            "typeString": "address[] calldata"
                                          }
                                        },
                                        "id": 5932,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "7104:6:25",
                                        "memberName": "length",
                                        "nodeType": "MemberAccess",
                                        "src": "7101:9:25",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "nodeType": "BinaryOperation",
                                      "operator": "==",
                                      "rightExpression": {
                                        "expression": {
                                          "id": 5933,
                                          "name": "amounts",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 5901,
                                          "src": "7114:7:25",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                            "typeString": "uint256[] calldata"
                                          }
                                        },
                                        "id": 5934,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberLocation": "7122:6:25",
                                        "memberName": "length",
                                        "nodeType": "MemberAccess",
                                        "src": "7114:14:25",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "src": "7101:27:25",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "src": "7078:50:25",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  }
                                ],
                                "id": 5937,
                                "isConstant": false,
                                "isInlineArray": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "TupleExpression",
                                "src": "7077:52:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "src": "7057:72:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "hexValue": "496e76616c696420696e707574",
                              "id": 5939,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "7131:15:25",
                              "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": 5922,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              4294967278,
                              4294967278
                            ],
                            "referencedDeclaration": 4294967278,
                            "src": "7049:7:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 5940,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7049:98:25",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 5941,
                        "nodeType": "ExpressionStatement",
                        "src": "7049:98:25"
                      }
                    ]
                  }
                },
                {
                  "body": {
                    "id": 5994,
                    "nodeType": "Block",
                    "src": "7450:220:25",
                    "statements": [
                      {
                        "expression": {
                          "id": 5976,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "UnaryOperation",
                          "operator": "++",
                          "prefix": true,
                          "src": "7464:13:25",
                          "subExpression": {
                            "id": 5975,
                            "name": "_tokenCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12432,
                            "src": "7466:11:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5977,
                        "nodeType": "ExpressionStatement",
                        "src": "7464:13:25"
                      },
                      {
                        "expression": {
                          "id": 5982,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 5978,
                              "name": "tokenIds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5908,
                              "src": "7491:8:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            },
                            "id": 5980,
                            "indexExpression": {
                              "id": 5979,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5969,
                              "src": "7500:1:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "7491:11:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "id": 5981,
                            "name": "_tokenCount",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 12432,
                            "src": "7505:11:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "7491:25:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 5983,
                        "nodeType": "ExpressionStatement",
                        "src": "7491:25:25"
                      },
                      {
                        "expression": {
                          "id": 5988,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 5984,
                              "name": "_tokensExtension",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 13505,
                              "src": "7587:16:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint256_$_t_address_$",
                                "typeString": "mapping(uint256 => address)"
                              }
                            },
                            "id": 5986,
                            "indexExpression": {
                              "id": 5985,
                              "name": "_tokenCount",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12432,
                              "src": "7604:11:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "7587:29:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "id": 5987,
                            "name": "extension",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5895,
                            "src": "7619:9:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "7587:41:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "id": 5989,
                        "nodeType": "ExpressionStatement",
                        "src": "7587:41:25"
                      },
                      {
                        "id": 5993,
                        "nodeType": "UncheckedBlock",
                        "src": "7642:18:25",
                        "statements": [
                          {
                            "expression": {
                              "id": 5991,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "7654:3:25",
                              "subExpression": {
                                "id": 5990,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5969,
                                "src": "7656:1:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 5992,
                            "nodeType": "ExpressionStatement",
                            "src": "7654:3:25"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 5974,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 5971,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5969,
                      "src": "7428:1:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 5972,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5908,
                        "src": "7432:8:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 5973,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "7441:6:25",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "7432:15:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "7428:19:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 5995,
                  "initializationExpression": {
                    "assignments": [
                      5969
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 5969,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "7425:1:25",
                        "nodeType": "VariableDeclaration",
                        "scope": 5995,
                        "src": "7420:6:25",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 5968,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "7420:4:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 5970,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "7420:6:25"
                  },
                  "nodeType": "ForStatement",
                  "src": "7415:255:25"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 6001,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 5996,
                      "name": "extension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5895,
                      "src": "7684:9:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "arguments": [
                        {
                          "hexValue": "30",
                          "id": 5999,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "7705:1:25",
                          "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": 5998,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "7697:7:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": {
                          "id": 5997,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "7697:7:25",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 6000,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "7697:10:25",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "7684:23:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6009,
                  "nodeType": "IfStatement",
                  "src": "7680:98:25",
                  "trueBody": {
                    "id": 6008,
                    "nodeType": "Block",
                    "src": "7709:69:25",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 6003,
                              "name": "to",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5898,
                              "src": "7745:2:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                "typeString": "address[] calldata"
                              }
                            },
                            {
                              "id": 6004,
                              "name": "tokenIds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5908,
                              "src": "7749:8:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            },
                            {
                              "id": 6005,
                              "name": "amounts",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5901,
                              "src": "7759:7:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                "typeString": "uint256[] calldata"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                "typeString": "address[] calldata"
                              },
                              {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              },
                              {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                "typeString": "uint256[] calldata"
                              }
                            ],
                            "id": 6002,
                            "name": "_checkMintPermissions",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13655,
                            "src": "7723:21:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$",
                              "typeString": "function (address[] memory,uint256[] memory,uint256[] memory)"
                            }
                          },
                          "id": 6006,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7723:44:25",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6007,
                        "nodeType": "ExpressionStatement",
                        "src": "7723:44:25"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 6018,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 6013,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "id": 6010,
                          "name": "to",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5898,
                          "src": "7792:2:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                            "typeString": "address[] calldata"
                          }
                        },
                        "id": 6011,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "7795:6:25",
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "src": "7792:9:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "hexValue": "31",
                        "id": 6012,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7805:1:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "src": "7792:14:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 6017,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "id": 6014,
                          "name": "tokenIds",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5908,
                          "src": "7810:8:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                            "typeString": "uint256[] memory"
                          }
                        },
                        "id": 6015,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "7819:6:25",
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "src": "7810:15:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "hexValue": "31",
                        "id": 6016,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7829:1:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "src": "7810:20:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "7792:38:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 6039,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "id": 6036,
                          "name": "to",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5898,
                          "src": "7943:2:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                            "typeString": "address[] calldata"
                          }
                        },
                        "id": 6037,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "7946:6:25",
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "src": "7943:9:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": ">",
                      "rightExpression": {
                        "hexValue": "31",
                        "id": 6038,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7955:1:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "src": "7943:13:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "id": 6118,
                      "nodeType": "Block",
                      "src": "8574:75:25",
                      "statements": [
                        {
                          "expression": {
                            "arguments": [
                              {
                                "baseExpression": {
                                  "id": 6107,
                                  "name": "to",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 5898,
                                  "src": "8599:2:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                    "typeString": "address[] calldata"
                                  }
                                },
                                "id": 6109,
                                "indexExpression": {
                                  "hexValue": "30",
                                  "id": 6108,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "8602:1:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "8599:5:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "id": 6110,
                                "name": "tokenIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5908,
                                "src": "8606:8:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                  "typeString": "uint256[] memory"
                                }
                              },
                              {
                                "id": 6111,
                                "name": "amounts",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5901,
                                "src": "8616:7:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              {
                                "arguments": [
                                  {
                                    "hexValue": "30",
                                    "id": 6114,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "8635:1:25",
                                    "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": 6113,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "NewExpression",
                                  "src": "8625:9:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                                    "typeString": "function (uint256) pure returns (bytes memory)"
                                  },
                                  "typeName": {
                                    "id": 6112,
                                    "name": "bytes",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "8629:5:25",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_storage_ptr",
                                      "typeString": "bytes"
                                    }
                                  }
                                },
                                "id": 6115,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8625:12:25",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                  "typeString": "uint256[] memory"
                                },
                                {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                },
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              ],
                              "id": 6106,
                              "name": "_mintBatch",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [
                                6735
                              ],
                              "referencedDeclaration": 6735,
                              "src": "8588:10:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
                                "typeString": "function (address,uint256[] memory,uint256[] memory,bytes memory)"
                              }
                            },
                            "id": 6116,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "8588:50:25",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 6117,
                          "nodeType": "ExpressionStatement",
                          "src": "8588:50:25"
                        }
                      ]
                    },
                    "id": 6119,
                    "nodeType": "IfStatement",
                    "src": "7939:710:25",
                    "trueBody": {
                      "id": 6105,
                      "nodeType": "Block",
                      "src": "7958:610:25",
                      "statements": [
                        {
                          "condition": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 6043,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "id": 6040,
                                "name": "amounts",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5901,
                                "src": "8037:7:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 6041,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "8045:6:25",
                              "memberName": "length",
                              "nodeType": "MemberAccess",
                              "src": "8037:14:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "hexValue": "31",
                              "id": 6042,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "8055:1:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "8037:19:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 6103,
                            "nodeType": "Block",
                            "src": "8310:248:25",
                            "statements": [
                              {
                                "body": {
                                  "id": 6101,
                                  "nodeType": "Block",
                                  "src": "8413:131:25",
                                  "statements": [
                                    {
                                      "expression": {
                                        "arguments": [
                                          {
                                            "baseExpression": {
                                              "id": 6082,
                                              "name": "to",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 5898,
                                              "src": "8441:2:25",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                "typeString": "address[] calldata"
                                              }
                                            },
                                            "id": 6084,
                                            "indexExpression": {
                                              "id": 6083,
                                              "name": "i",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 6075,
                                              "src": "8444:1:25",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "8441:5:25",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          },
                                          {
                                            "baseExpression": {
                                              "id": 6085,
                                              "name": "tokenIds",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 5908,
                                              "src": "8448:8:25",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                                "typeString": "uint256[] memory"
                                              }
                                            },
                                            "id": 6087,
                                            "indexExpression": {
                                              "hexValue": "30",
                                              "id": 6086,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "8457:1:25",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                              },
                                              "value": "0"
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "8448:11:25",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          {
                                            "baseExpression": {
                                              "id": 6088,
                                              "name": "amounts",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 5901,
                                              "src": "8461:7:25",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                                "typeString": "uint256[] calldata"
                                              }
                                            },
                                            "id": 6090,
                                            "indexExpression": {
                                              "id": 6089,
                                              "name": "i",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 6075,
                                              "src": "8469:1:25",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "8461:10:25",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          {
                                            "arguments": [
                                              {
                                                "hexValue": "30",
                                                "id": 6093,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "8483:1:25",
                                                "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": 6092,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "nodeType": "NewExpression",
                                              "src": "8473:9:25",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                                                "typeString": "function (uint256) pure returns (bytes memory)"
                                              },
                                              "typeName": {
                                                "id": 6091,
                                                "name": "bytes",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "8477:5:25",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_bytes_storage_ptr",
                                                  "typeString": "bytes"
                                                }
                                              }
                                            },
                                            "id": 6094,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "nameLocations": [],
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "8473:12:25",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            },
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            },
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            },
                                            {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          ],
                                          "id": 6081,
                                          "name": "_mint",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [
                                            6687
                                          ],
                                          "referencedDeclaration": 6687,
                                          "src": "8435:5:25",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                                            "typeString": "function (address,uint256,uint256,bytes memory)"
                                          }
                                        },
                                        "id": 6095,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8435:51:25",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_tuple$__$",
                                          "typeString": "tuple()"
                                        }
                                      },
                                      "id": 6096,
                                      "nodeType": "ExpressionStatement",
                                      "src": "8435:51:25"
                                    },
                                    {
                                      "id": 6100,
                                      "nodeType": "UncheckedBlock",
                                      "src": "8508:18:25",
                                      "statements": [
                                        {
                                          "expression": {
                                            "id": 6098,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "UnaryOperation",
                                            "operator": "++",
                                            "prefix": true,
                                            "src": "8520:3:25",
                                            "subExpression": {
                                              "id": 6097,
                                              "name": "i",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 6075,
                                              "src": "8522:1:25",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "id": 6099,
                                          "nodeType": "ExpressionStatement",
                                          "src": "8520:3:25"
                                        }
                                      ]
                                    }
                                  ]
                                },
                                "condition": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 6080,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 6077,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6075,
                                    "src": "8397:1:25",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "<",
                                  "rightExpression": {
                                    "expression": {
                                      "id": 6078,
                                      "name": "to",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5898,
                                      "src": "8401:2:25",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                        "typeString": "address[] calldata"
                                      }
                                    },
                                    "id": 6079,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "8404:6:25",
                                    "memberName": "length",
                                    "nodeType": "MemberAccess",
                                    "src": "8401:9:25",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "8397:13:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "id": 6102,
                                "initializationExpression": {
                                  "assignments": [
                                    6075
                                  ],
                                  "declarations": [
                                    {
                                      "constant": false,
                                      "id": 6075,
                                      "mutability": "mutable",
                                      "name": "i",
                                      "nameLocation": "8394:1:25",
                                      "nodeType": "VariableDeclaration",
                                      "scope": 6102,
                                      "src": "8389:6:25",
                                      "stateVariable": false,
                                      "storageLocation": "default",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "typeName": {
                                        "id": 6074,
                                        "name": "uint",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8389:4:25",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "visibility": "internal"
                                    }
                                  ],
                                  "id": 6076,
                                  "nodeType": "VariableDeclarationStatement",
                                  "src": "8389:6:25"
                                },
                                "nodeType": "ForStatement",
                                "src": "8384:160:25"
                              }
                            ]
                          },
                          "id": 6104,
                          "nodeType": "IfStatement",
                          "src": "8033:525:25",
                          "trueBody": {
                            "id": 6073,
                            "nodeType": "Block",
                            "src": "8058:246:25",
                            "statements": [
                              {
                                "body": {
                                  "id": 6071,
                                  "nodeType": "Block",
                                  "src": "8159:131:25",
                                  "statements": [
                                    {
                                      "expression": {
                                        "arguments": [
                                          {
                                            "baseExpression": {
                                              "id": 6052,
                                              "name": "to",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 5898,
                                              "src": "8187:2:25",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                "typeString": "address[] calldata"
                                              }
                                            },
                                            "id": 6054,
                                            "indexExpression": {
                                              "id": 6053,
                                              "name": "i",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 6045,
                                              "src": "8190:1:25",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "8187:5:25",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          },
                                          {
                                            "baseExpression": {
                                              "id": 6055,
                                              "name": "tokenIds",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 5908,
                                              "src": "8194:8:25",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                                "typeString": "uint256[] memory"
                                              }
                                            },
                                            "id": 6057,
                                            "indexExpression": {
                                              "hexValue": "30",
                                              "id": 6056,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "8203:1:25",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                              },
                                              "value": "0"
                                            },
                                            "isConstant": false,
                                            "isLValue": true,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "8194:11:25",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          {
                                            "baseExpression": {
                                              "id": 6058,
                                              "name": "amounts",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 5901,
                                              "src": "8207:7:25",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                                "typeString": "uint256[] calldata"
                                              }
                                            },
                                            "id": 6060,
                                            "indexExpression": {
                                              "hexValue": "30",
                                              "id": 6059,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "8215:1:25",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_rational_0_by_1",
                                                "typeString": "int_const 0"
                                              },
                                              "value": "0"
                                            },
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "8207:10:25",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          {
                                            "arguments": [
                                              {
                                                "hexValue": "30",
                                                "id": 6063,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "8229:1:25",
                                                "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": 6062,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "nodeType": "NewExpression",
                                              "src": "8219:9:25",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                                                "typeString": "function (uint256) pure returns (bytes memory)"
                                              },
                                              "typeName": {
                                                "id": 6061,
                                                "name": "bytes",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "8223:5:25",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_bytes_storage_ptr",
                                                  "typeString": "bytes"
                                                }
                                              }
                                            },
                                            "id": 6064,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "nameLocations": [],
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "8219:12:25",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            },
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            },
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            },
                                            {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          ],
                                          "id": 6051,
                                          "name": "_mint",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [
                                            6687
                                          ],
                                          "referencedDeclaration": 6687,
                                          "src": "8181:5:25",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                                            "typeString": "function (address,uint256,uint256,bytes memory)"
                                          }
                                        },
                                        "id": 6065,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "8181:51:25",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_tuple$__$",
                                          "typeString": "tuple()"
                                        }
                                      },
                                      "id": 6066,
                                      "nodeType": "ExpressionStatement",
                                      "src": "8181:51:25"
                                    },
                                    {
                                      "id": 6070,
                                      "nodeType": "UncheckedBlock",
                                      "src": "8254:18:25",
                                      "statements": [
                                        {
                                          "expression": {
                                            "id": 6068,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "UnaryOperation",
                                            "operator": "++",
                                            "prefix": true,
                                            "src": "8266:3:25",
                                            "subExpression": {
                                              "id": 6067,
                                              "name": "i",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 6045,
                                              "src": "8268:1:25",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "id": 6069,
                                          "nodeType": "ExpressionStatement",
                                          "src": "8266:3:25"
                                        }
                                      ]
                                    }
                                  ]
                                },
                                "condition": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 6050,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 6047,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6045,
                                    "src": "8143:1:25",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "<",
                                  "rightExpression": {
                                    "expression": {
                                      "id": 6048,
                                      "name": "to",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5898,
                                      "src": "8147:2:25",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                        "typeString": "address[] calldata"
                                      }
                                    },
                                    "id": 6049,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "8150:6:25",
                                    "memberName": "length",
                                    "nodeType": "MemberAccess",
                                    "src": "8147:9:25",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "8143:13:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "id": 6072,
                                "initializationExpression": {
                                  "assignments": [
                                    6045
                                  ],
                                  "declarations": [
                                    {
                                      "constant": false,
                                      "id": 6045,
                                      "mutability": "mutable",
                                      "name": "i",
                                      "nameLocation": "8140:1:25",
                                      "nodeType": "VariableDeclaration",
                                      "scope": 6072,
                                      "src": "8135:6:25",
                                      "stateVariable": false,
                                      "storageLocation": "default",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "typeName": {
                                        "id": 6044,
                                        "name": "uint",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "8135:4:25",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "visibility": "internal"
                                    }
                                  ],
                                  "id": 6046,
                                  "nodeType": "VariableDeclarationStatement",
                                  "src": "8135:6:25"
                                },
                                "nodeType": "ForStatement",
                                "src": "8130:160:25"
                              }
                            ]
                          }
                        }
                      ]
                    }
                  },
                  "id": 6120,
                  "nodeType": "IfStatement",
                  "src": "7788:861:25",
                  "trueBody": {
                    "id": 6035,
                    "nodeType": "Block",
                    "src": "7832:101:25",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 6020,
                                "name": "to",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5898,
                                "src": "7877:2:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                  "typeString": "address[] calldata"
                                }
                              },
                              "id": 6022,
                              "indexExpression": {
                                "hexValue": "30",
                                "id": 6021,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7880:1:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "7877:5:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "baseExpression": {
                                "id": 6023,
                                "name": "tokenIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5908,
                                "src": "7884:8:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                  "typeString": "uint256[] memory"
                                }
                              },
                              "id": 6025,
                              "indexExpression": {
                                "hexValue": "30",
                                "id": 6024,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7893:1:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "7884:11:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "baseExpression": {
                                "id": 6026,
                                "name": "amounts",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5901,
                                "src": "7897:7:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 6028,
                              "indexExpression": {
                                "hexValue": "30",
                                "id": 6027,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "7905:1:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "7897:10:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "arguments": [
                                {
                                  "hexValue": "30",
                                  "id": 6031,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "7919:1:25",
                                  "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": 6030,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "NewExpression",
                                "src": "7909:9:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                                  "typeString": "function (uint256) pure returns (bytes memory)"
                                },
                                "typeName": {
                                  "id": 6029,
                                  "name": "bytes",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "7913:5:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_storage_ptr",
                                    "typeString": "bytes"
                                  }
                                }
                              },
                              "id": 6032,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "7909:12:25",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 6019,
                            "name": "_mint",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              6687
                            ],
                            "referencedDeclaration": 6687,
                            "src": "7871:5:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                              "typeString": "function (address,uint256,uint256,bytes memory)"
                            }
                          },
                          "id": 6033,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7871:51:25",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6034,
                        "nodeType": "ExpressionStatement",
                        "src": "7871:51:25"
                      }
                    ]
                  }
                },
                {
                  "body": {
                    "id": 6158,
                    "nodeType": "Block",
                    "src": "8694:171:25",
                    "statements": [
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 6141,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 6131,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "id": 6128,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6122,
                              "src": "8712:1:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "<",
                            "rightExpression": {
                              "expression": {
                                "id": 6129,
                                "name": "uris",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 5904,
                                "src": "8716:4:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                                  "typeString": "string calldata[] calldata"
                                }
                              },
                              "id": 6130,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "8721:6:25",
                              "memberName": "length",
                              "nodeType": "MemberAccess",
                              "src": "8716:11:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "8712:15:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 6140,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "arguments": [
                                  {
                                    "baseExpression": {
                                      "id": 6134,
                                      "name": "uris",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5904,
                                      "src": "8737:4:25",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                                        "typeString": "string calldata[] calldata"
                                      }
                                    },
                                    "id": 6136,
                                    "indexExpression": {
                                      "id": 6135,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6122,
                                      "src": "8742:1:25",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "8737:7:25",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_calldata_ptr",
                                      "typeString": "string calldata"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_string_calldata_ptr",
                                      "typeString": "string calldata"
                                    }
                                  ],
                                  "id": 6133,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "ElementaryTypeNameExpression",
                                  "src": "8731:5:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_bytes_storage_ptr_$",
                                    "typeString": "type(bytes storage pointer)"
                                  },
                                  "typeName": {
                                    "id": 6132,
                                    "name": "bytes",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "8731:5:25",
                                    "typeDescriptions": {}
                                  }
                                },
                                "id": 6137,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "typeConversion",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "8731:14:25",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_calldata_ptr",
                                  "typeString": "bytes calldata"
                                }
                              },
                              "id": 6138,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "8746:6:25",
                              "memberName": "length",
                              "nodeType": "MemberAccess",
                              "src": "8731:21:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": ">",
                            "rightExpression": {
                              "hexValue": "30",
                              "id": 6139,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "8755:1:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            },
                            "src": "8731:25:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "8712:44:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 6153,
                        "nodeType": "IfStatement",
                        "src": "8708:116:25",
                        "trueBody": {
                          "id": 6152,
                          "nodeType": "Block",
                          "src": "8758:66:25",
                          "statements": [
                            {
                              "expression": {
                                "id": 6150,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "baseExpression": {
                                    "id": 6142,
                                    "name": "_tokenURIs",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 12456,
                                    "src": "8776:10:25",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_mapping$_t_uint256_$_t_string_storage_$",
                                      "typeString": "mapping(uint256 => string storage ref)"
                                    }
                                  },
                                  "id": 6146,
                                  "indexExpression": {
                                    "baseExpression": {
                                      "id": 6143,
                                      "name": "tokenIds",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 5908,
                                      "src": "8787:8:25",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                        "typeString": "uint256[] memory"
                                      }
                                    },
                                    "id": 6145,
                                    "indexExpression": {
                                      "id": 6144,
                                      "name": "i",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6122,
                                      "src": "8796:1:25",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "isConstant": false,
                                    "isLValue": true,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "nodeType": "IndexAccess",
                                    "src": "8787:11:25",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "8776:23:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_storage",
                                    "typeString": "string storage ref"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "baseExpression": {
                                    "id": 6147,
                                    "name": "uris",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 5904,
                                    "src": "8802:4:25",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                                      "typeString": "string calldata[] calldata"
                                    }
                                  },
                                  "id": 6149,
                                  "indexExpression": {
                                    "id": 6148,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6122,
                                    "src": "8807:1:25",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "8802:7:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_calldata_ptr",
                                    "typeString": "string calldata"
                                  }
                                },
                                "src": "8776:33:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_storage",
                                  "typeString": "string storage ref"
                                }
                              },
                              "id": 6151,
                              "nodeType": "ExpressionStatement",
                              "src": "8776:33:25"
                            }
                          ]
                        }
                      },
                      {
                        "id": 6157,
                        "nodeType": "UncheckedBlock",
                        "src": "8837:18:25",
                        "statements": [
                          {
                            "expression": {
                              "id": 6155,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "8849:3:25",
                              "subExpression": {
                                "id": 6154,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6122,
                                "src": "8851:1:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 6156,
                            "nodeType": "ExpressionStatement",
                            "src": "8849:3:25"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6127,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 6124,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6122,
                      "src": "8672:1:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 6125,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5908,
                        "src": "8676:8:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 6126,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "8685:6:25",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "8676:15:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "8672:19:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6159,
                  "initializationExpression": {
                    "assignments": [
                      6122
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 6122,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "8669:1:25",
                        "nodeType": "VariableDeclaration",
                        "scope": 6159,
                        "src": "8664:6:25",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 6121,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "8664:4:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 6123,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "8664:6:25"
                  },
                  "nodeType": "ForStatement",
                  "src": "8659:206:25"
                }
              ]
            },
            "documentation": {
              "id": 5893,
              "nodeType": "StructuredDocumentation",
              "src": "6691:39:25",
              "text": " @dev Mint new tokens"
            },
            "id": 6161,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_mintNew",
            "nameLocation": "6744:8:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5905,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5895,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "6761:9:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6161,
                  "src": "6753:17:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5894,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6753:7:25",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5898,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "6791:2:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6161,
                  "src": "6772:21:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5896,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "6772:7:25",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 5897,
                    "nodeType": "ArrayTypeName",
                    "src": "6772:9:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5901,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "6814:7:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6161,
                  "src": "6795:26:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5899,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "6795:7:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 5900,
                    "nodeType": "ArrayTypeName",
                    "src": "6795:9:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5904,
                  "mutability": "mutable",
                  "name": "uris",
                  "nameLocation": "6841:4:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6161,
                  "src": "6823:22:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_string_calldata_ptr_$dyn_calldata_ptr",
                    "typeString": "string[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5902,
                      "name": "string",
                      "nodeType": "ElementaryTypeName",
                      "src": "6823:6:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage_ptr",
                        "typeString": "string"
                      }
                    },
                    "id": 5903,
                    "nodeType": "ArrayTypeName",
                    "src": "6823:8:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_string_storage_$dyn_storage_ptr",
                      "typeString": "string[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6752:94:25"
            },
            "returnParameters": {
              "id": 5909,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5908,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "6881:8:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6161,
                  "src": "6864:25:25",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 5906,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "6864:7:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 5907,
                    "nodeType": "ArrayTypeName",
                    "src": "6864:9:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6863:27:25"
            },
            "scope": 6821,
            "src": "6735:2136:25",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 6374,
              "nodeType": "Block",
              "src": "9057:1489:25",
              "statements": [
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 6181,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 6176,
                      "name": "extension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6164,
                      "src": "9071:9:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "!=",
                    "rightExpression": {
                      "arguments": [
                        {
                          "hexValue": "30",
                          "id": 6179,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9092:1:25",
                          "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": 6178,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "9084:7:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": {
                          "id": 6177,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "9084:7:25",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 6180,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "9084:10:25",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "9071:23:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6189,
                  "nodeType": "IfStatement",
                  "src": "9067:98:25",
                  "trueBody": {
                    "id": 6188,
                    "nodeType": "Block",
                    "src": "9096:69:25",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 6183,
                              "name": "to",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6167,
                              "src": "9132:2:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                "typeString": "address[] calldata"
                              }
                            },
                            {
                              "id": 6184,
                              "name": "tokenIds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6170,
                              "src": "9136:8:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                "typeString": "uint256[] calldata"
                              }
                            },
                            {
                              "id": 6185,
                              "name": "amounts",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6173,
                              "src": "9146:7:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                "typeString": "uint256[] calldata"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                "typeString": "address[] calldata"
                              },
                              {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                "typeString": "uint256[] calldata"
                              },
                              {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                "typeString": "uint256[] calldata"
                              }
                            ],
                            "id": 6182,
                            "name": "_checkMintPermissions",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 13655,
                            "src": "9110:21:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_array$_t_address_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$",
                              "typeString": "function (address[] memory,uint256[] memory,uint256[] memory)"
                            }
                          },
                          "id": 6186,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9110:44:25",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6187,
                        "nodeType": "ExpressionStatement",
                        "src": "9110:44:25"
                      }
                    ]
                  }
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 6203,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "id": 6198,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6193,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 6190,
                            "name": "to",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6167,
                            "src": "9179:2:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                              "typeString": "address[] calldata"
                            }
                          },
                          "id": 6191,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "9182:6:25",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "9179:9:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "hexValue": "31",
                          "id": 6192,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9192:1:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "9179:14:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&&",
                      "rightExpression": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6197,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 6194,
                            "name": "tokenIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6170,
                            "src": "9197:8:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 6195,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "9206:6:25",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "9197:15:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "hexValue": "31",
                          "id": 6196,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9216:1:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "9197:20:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "src": "9179:38:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "&&",
                    "rightExpression": {
                      "commonType": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "id": 6202,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "expression": {
                          "id": 6199,
                          "name": "amounts",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6173,
                          "src": "9221:7:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                            "typeString": "uint256[] calldata"
                          }
                        },
                        "id": 6200,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "9229:6:25",
                        "memberName": "length",
                        "nodeType": "MemberAccess",
                        "src": "9221:14:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "hexValue": "31",
                        "id": 6201,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "number",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "9239:1:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_rational_1_by_1",
                          "typeString": "int_const 1"
                        },
                        "value": "1"
                      },
                      "src": "9221:19:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "9179:61:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "commonType": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "id": 6230,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6224,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 6221,
                            "name": "to",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6167,
                            "src": "9368:2:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                              "typeString": "address[] calldata"
                            }
                          },
                          "id": 6222,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "9371:6:25",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "9368:9:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "hexValue": "31",
                          "id": 6223,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "9381:1:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_1_by_1",
                            "typeString": "int_const 1"
                          },
                          "value": "1"
                        },
                        "src": "9368:14:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "&&",
                      "rightExpression": {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6229,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 6225,
                            "name": "tokenIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6170,
                            "src": "9386:8:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 6226,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "9395:6:25",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "9386:15:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "expression": {
                            "id": 6227,
                            "name": "amounts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6173,
                            "src": "9405:7:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 6228,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "9413:6:25",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "9405:14:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "9386:33:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "src": "9368:51:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 6252,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 6247,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 6244,
                              "name": "tokenIds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6170,
                              "src": "9549:8:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                "typeString": "uint256[] calldata"
                              }
                            },
                            "id": 6245,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9558:6:25",
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "src": "9549:15:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "hexValue": "31",
                            "id": 6246,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "9568:1:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            },
                            "value": "1"
                          },
                          "src": "9549:20:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "&&",
                        "rightExpression": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 6251,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "expression": {
                              "id": 6248,
                              "name": "amounts",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6173,
                              "src": "9573:7:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                "typeString": "uint256[] calldata"
                              }
                            },
                            "id": 6249,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "9581:6:25",
                            "memberName": "length",
                            "nodeType": "MemberAccess",
                            "src": "9573:14:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "hexValue": "31",
                            "id": 6250,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "9591:1:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_rational_1_by_1",
                              "typeString": "int_const 1"
                            },
                            "value": "1"
                          },
                          "src": "9573:19:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "9549:43:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          },
                          "id": 6292,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 6286,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "id": 6283,
                                "name": "tokenIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6170,
                                "src": "9849:8:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 6284,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "9858:6:25",
                              "memberName": "length",
                              "nodeType": "MemberAccess",
                              "src": "9849:15:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "hexValue": "31",
                              "id": 6285,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "9868:1:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_1_by_1",
                                "typeString": "int_const 1"
                              },
                              "value": "1"
                            },
                            "src": "9849:20:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "&&",
                          "rightExpression": {
                            "commonType": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            },
                            "id": 6291,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "expression": {
                                "id": 6287,
                                "name": "to",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6167,
                                "src": "9873:2:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                  "typeString": "address[] calldata"
                                }
                              },
                              "id": 6288,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "9876:6:25",
                              "memberName": "length",
                              "nodeType": "MemberAccess",
                              "src": "9873:9:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "expression": {
                                "id": 6289,
                                "name": "amounts",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6173,
                                "src": "9886:7:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 6290,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "9894:6:25",
                              "memberName": "length",
                              "nodeType": "MemberAccess",
                              "src": "9886:14:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "src": "9873:27:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "src": "9849:51:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "commonType": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "id": 6333,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 6327,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "id": 6323,
                                  "name": "to",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6167,
                                  "src": "10168:2:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                    "typeString": "address[] calldata"
                                  }
                                },
                                "id": 6324,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "10171:6:25",
                                "memberName": "length",
                                "nodeType": "MemberAccess",
                                "src": "10168:9:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "expression": {
                                  "id": 6325,
                                  "name": "tokenIds",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6170,
                                  "src": "10181:8:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                    "typeString": "uint256[] calldata"
                                  }
                                },
                                "id": 6326,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "10190:6:25",
                                "memberName": "length",
                                "nodeType": "MemberAccess",
                                "src": "10181:15:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "10168:28:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "&&",
                            "rightExpression": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 6332,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "expression": {
                                  "id": 6328,
                                  "name": "to",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6167,
                                  "src": "10200:2:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                    "typeString": "address[] calldata"
                                  }
                                },
                                "id": 6329,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "10203:6:25",
                                "memberName": "length",
                                "nodeType": "MemberAccess",
                                "src": "10200:9:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "expression": {
                                  "id": 6330,
                                  "name": "amounts",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6173,
                                  "src": "10213:7:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                    "typeString": "uint256[] calldata"
                                  }
                                },
                                "id": 6331,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "10221:6:25",
                                "memberName": "length",
                                "nodeType": "MemberAccess",
                                "src": "10213:14:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "10200:27:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "src": "10168:59:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "id": 6368,
                            "nodeType": "Block",
                            "src": "10492:48:25",
                            "statements": [
                              {
                                "expression": {
                                  "arguments": [
                                    {
                                      "hexValue": "496e76616c696420696e707574",
                                      "id": 6365,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "string",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "10513:15:25",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b",
                                        "typeString": "literal_string \"Invalid input\""
                                      },
                                      "value": "Invalid input"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_stringliteral_af39b50065ba9648c753f781fa674704d13ce8309cf446a262799d7aceba8e5b",
                                        "typeString": "literal_string \"Invalid input\""
                                      }
                                    ],
                                    "id": 6364,
                                    "name": "revert",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [
                                      4294967277,
                                      4294967277
                                    ],
                                    "referencedDeclaration": 4294967277,
                                    "src": "10506:6:25",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_revert_pure$_t_string_memory_ptr_$returns$__$",
                                      "typeString": "function (string memory) pure"
                                    }
                                  },
                                  "id": 6366,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "nameLocations": [],
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "10506:23:25",
                                  "tryCall": false,
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 6367,
                                "nodeType": "ExpressionStatement",
                                "src": "10506:23:25"
                              }
                            ]
                          },
                          "id": 6369,
                          "nodeType": "IfStatement",
                          "src": "10164:376:25",
                          "trueBody": {
                            "id": 6363,
                            "nodeType": "Block",
                            "src": "10229:257:25",
                            "statements": [
                              {
                                "body": {
                                  "id": 6361,
                                  "nodeType": "Block",
                                  "src": "10357:119:25",
                                  "statements": [
                                    {
                                      "expression": {
                                        "arguments": [
                                          {
                                            "baseExpression": {
                                              "id": 6342,
                                              "name": "to",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 6167,
                                              "src": "10381:2:25",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                                "typeString": "address[] calldata"
                                              }
                                            },
                                            "id": 6344,
                                            "indexExpression": {
                                              "id": 6343,
                                              "name": "i",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 6335,
                                              "src": "10384:1:25",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "10381:5:25",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          },
                                          {
                                            "baseExpression": {
                                              "id": 6345,
                                              "name": "tokenIds",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 6170,
                                              "src": "10388:8:25",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                                "typeString": "uint256[] calldata"
                                              }
                                            },
                                            "id": 6347,
                                            "indexExpression": {
                                              "id": 6346,
                                              "name": "i",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 6335,
                                              "src": "10397:1:25",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "10388:11:25",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          {
                                            "baseExpression": {
                                              "id": 6348,
                                              "name": "amounts",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 6173,
                                              "src": "10401:7:25",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                                "typeString": "uint256[] calldata"
                                              }
                                            },
                                            "id": 6350,
                                            "indexExpression": {
                                              "id": 6349,
                                              "name": "i",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 6335,
                                              "src": "10409:1:25",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "IndexAccess",
                                            "src": "10401:10:25",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          {
                                            "arguments": [
                                              {
                                                "hexValue": "30",
                                                "id": 6353,
                                                "isConstant": false,
                                                "isLValue": false,
                                                "isPure": true,
                                                "kind": "number",
                                                "lValueRequested": false,
                                                "nodeType": "Literal",
                                                "src": "10423:1:25",
                                                "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": 6352,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "lValueRequested": false,
                                              "nodeType": "NewExpression",
                                              "src": "10413:9:25",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                                                "typeString": "function (uint256) pure returns (bytes memory)"
                                              },
                                              "typeName": {
                                                "id": 6351,
                                                "name": "bytes",
                                                "nodeType": "ElementaryTypeName",
                                                "src": "10417:5:25",
                                                "typeDescriptions": {
                                                  "typeIdentifier": "t_bytes_storage_ptr",
                                                  "typeString": "bytes"
                                                }
                                              }
                                            },
                                            "id": 6354,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "functionCall",
                                            "lValueRequested": false,
                                            "nameLocations": [],
                                            "names": [],
                                            "nodeType": "FunctionCall",
                                            "src": "10413:12:25",
                                            "tryCall": false,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            },
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            },
                                            {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            },
                                            {
                                              "typeIdentifier": "t_bytes_memory_ptr",
                                              "typeString": "bytes memory"
                                            }
                                          ],
                                          "id": 6341,
                                          "name": "_mint",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [
                                            6687
                                          ],
                                          "referencedDeclaration": 6687,
                                          "src": "10375:5:25",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                                            "typeString": "function (address,uint256,uint256,bytes memory)"
                                          }
                                        },
                                        "id": 6355,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "10375:51:25",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_tuple$__$",
                                          "typeString": "tuple()"
                                        }
                                      },
                                      "id": 6356,
                                      "nodeType": "ExpressionStatement",
                                      "src": "10375:51:25"
                                    },
                                    {
                                      "id": 6360,
                                      "nodeType": "UncheckedBlock",
                                      "src": "10444:18:25",
                                      "statements": [
                                        {
                                          "expression": {
                                            "id": 6358,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": false,
                                            "lValueRequested": false,
                                            "nodeType": "UnaryOperation",
                                            "operator": "++",
                                            "prefix": true,
                                            "src": "10456:3:25",
                                            "subExpression": {
                                              "id": 6357,
                                              "name": "i",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 6335,
                                              "src": "10458:1:25",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_uint256",
                                                "typeString": "uint256"
                                              }
                                            },
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "id": 6359,
                                          "nodeType": "ExpressionStatement",
                                          "src": "10456:3:25"
                                        }
                                      ]
                                    }
                                  ]
                                },
                                "condition": {
                                  "commonType": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "id": 6340,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "id": 6337,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6335,
                                    "src": "10341:1:25",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "<",
                                  "rightExpression": {
                                    "expression": {
                                      "id": 6338,
                                      "name": "to",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6167,
                                      "src": "10345:2:25",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                        "typeString": "address[] calldata"
                                      }
                                    },
                                    "id": 6339,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberLocation": "10348:6:25",
                                    "memberName": "length",
                                    "nodeType": "MemberAccess",
                                    "src": "10345:9:25",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "src": "10341:13:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "id": 6362,
                                "initializationExpression": {
                                  "assignments": [
                                    6335
                                  ],
                                  "declarations": [
                                    {
                                      "constant": false,
                                      "id": 6335,
                                      "mutability": "mutable",
                                      "name": "i",
                                      "nameLocation": "10338:1:25",
                                      "nodeType": "VariableDeclaration",
                                      "scope": 6362,
                                      "src": "10333:6:25",
                                      "stateVariable": false,
                                      "storageLocation": "default",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      },
                                      "typeName": {
                                        "id": 6334,
                                        "name": "uint",
                                        "nodeType": "ElementaryTypeName",
                                        "src": "10333:4:25",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "visibility": "internal"
                                    }
                                  ],
                                  "id": 6336,
                                  "nodeType": "VariableDeclarationStatement",
                                  "src": "10333:6:25"
                                },
                                "nodeType": "ForStatement",
                                "src": "10328:148:25"
                              }
                            ]
                          }
                        },
                        "id": 6370,
                        "nodeType": "IfStatement",
                        "src": "9845:695:25",
                        "trueBody": {
                          "id": 6322,
                          "nodeType": "Block",
                          "src": "9902:256:25",
                          "statements": [
                            {
                              "body": {
                                "id": 6320,
                                "nodeType": "Block",
                                "src": "10029:119:25",
                                "statements": [
                                  {
                                    "expression": {
                                      "arguments": [
                                        {
                                          "baseExpression": {
                                            "id": 6301,
                                            "name": "to",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6167,
                                            "src": "10053:2:25",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                              "typeString": "address[] calldata"
                                            }
                                          },
                                          "id": 6303,
                                          "indexExpression": {
                                            "id": 6302,
                                            "name": "i",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6294,
                                            "src": "10056:1:25",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "10053:5:25",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                          }
                                        },
                                        {
                                          "baseExpression": {
                                            "id": 6304,
                                            "name": "tokenIds",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6170,
                                            "src": "10060:8:25",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                              "typeString": "uint256[] calldata"
                                            }
                                          },
                                          "id": 6306,
                                          "indexExpression": {
                                            "hexValue": "30",
                                            "id": 6305,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "10069:1:25",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_0_by_1",
                                              "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "10060:11:25",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        {
                                          "baseExpression": {
                                            "id": 6307,
                                            "name": "amounts",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6173,
                                            "src": "10073:7:25",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                              "typeString": "uint256[] calldata"
                                            }
                                          },
                                          "id": 6309,
                                          "indexExpression": {
                                            "id": 6308,
                                            "name": "i",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6294,
                                            "src": "10081:1:25",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "IndexAccess",
                                          "src": "10073:10:25",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        {
                                          "arguments": [
                                            {
                                              "hexValue": "30",
                                              "id": 6312,
                                              "isConstant": false,
                                              "isLValue": false,
                                              "isPure": true,
                                              "kind": "number",
                                              "lValueRequested": false,
                                              "nodeType": "Literal",
                                              "src": "10095:1:25",
                                              "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": 6311,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "lValueRequested": false,
                                            "nodeType": "NewExpression",
                                            "src": "10085:9:25",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                                              "typeString": "function (uint256) pure returns (bytes memory)"
                                            },
                                            "typeName": {
                                              "id": 6310,
                                              "name": "bytes",
                                              "nodeType": "ElementaryTypeName",
                                              "src": "10089:5:25",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_bytes_storage_ptr",
                                                "typeString": "bytes"
                                              }
                                            }
                                          },
                                          "id": 6313,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "functionCall",
                                          "lValueRequested": false,
                                          "nameLocations": [],
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "10085:12:25",
                                          "tryCall": false,
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_bytes_memory_ptr",
                                            "typeString": "bytes memory"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                          },
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          },
                                          {
                                            "typeIdentifier": "t_bytes_memory_ptr",
                                            "typeString": "bytes memory"
                                          }
                                        ],
                                        "id": 6300,
                                        "name": "_mint",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [
                                          6687
                                        ],
                                        "referencedDeclaration": 6687,
                                        "src": "10047:5:25",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                                          "typeString": "function (address,uint256,uint256,bytes memory)"
                                        }
                                      },
                                      "id": 6314,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "nameLocations": [],
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "10047:51:25",
                                      "tryCall": false,
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_tuple$__$",
                                        "typeString": "tuple()"
                                      }
                                    },
                                    "id": 6315,
                                    "nodeType": "ExpressionStatement",
                                    "src": "10047:51:25"
                                  },
                                  {
                                    "id": 6319,
                                    "nodeType": "UncheckedBlock",
                                    "src": "10116:18:25",
                                    "statements": [
                                      {
                                        "expression": {
                                          "id": 6317,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "lValueRequested": false,
                                          "nodeType": "UnaryOperation",
                                          "operator": "++",
                                          "prefix": true,
                                          "src": "10128:3:25",
                                          "subExpression": {
                                            "id": 6316,
                                            "name": "i",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6294,
                                            "src": "10130:1:25",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_uint256",
                                              "typeString": "uint256"
                                            }
                                          },
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "id": 6318,
                                        "nodeType": "ExpressionStatement",
                                        "src": "10128:3:25"
                                      }
                                    ]
                                  }
                                ]
                              },
                              "condition": {
                                "commonType": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                },
                                "id": 6299,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "id": 6296,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6294,
                                  "src": "10013:1:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "<",
                                "rightExpression": {
                                  "expression": {
                                    "id": 6297,
                                    "name": "to",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6167,
                                    "src": "10017:2:25",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                      "typeString": "address[] calldata"
                                    }
                                  },
                                  "id": 6298,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "10020:6:25",
                                  "memberName": "length",
                                  "nodeType": "MemberAccess",
                                  "src": "10017:9:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "10013:13:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "id": 6321,
                              "initializationExpression": {
                                "assignments": [
                                  6294
                                ],
                                "declarations": [
                                  {
                                    "constant": false,
                                    "id": 6294,
                                    "mutability": "mutable",
                                    "name": "i",
                                    "nameLocation": "10010:1:25",
                                    "nodeType": "VariableDeclaration",
                                    "scope": 6321,
                                    "src": "10005:6:25",
                                    "stateVariable": false,
                                    "storageLocation": "default",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "typeName": {
                                      "id": 6293,
                                      "name": "uint",
                                      "nodeType": "ElementaryTypeName",
                                      "src": "10005:4:25",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "visibility": "internal"
                                  }
                                ],
                                "id": 6295,
                                "nodeType": "VariableDeclarationStatement",
                                "src": "10005:6:25"
                              },
                              "nodeType": "ForStatement",
                              "src": "10000:148:25"
                            }
                          ]
                        }
                      },
                      "id": 6371,
                      "nodeType": "IfStatement",
                      "src": "9545:995:25",
                      "trueBody": {
                        "id": 6282,
                        "nodeType": "Block",
                        "src": "9594:245:25",
                        "statements": [
                          {
                            "body": {
                              "id": 6280,
                              "nodeType": "Block",
                              "src": "9710:119:25",
                              "statements": [
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "baseExpression": {
                                          "id": 6261,
                                          "name": "to",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6167,
                                          "src": "9734:2:25",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                            "typeString": "address[] calldata"
                                          }
                                        },
                                        "id": 6263,
                                        "indexExpression": {
                                          "id": 6262,
                                          "name": "i",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6254,
                                          "src": "9737:1:25",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "9734:5:25",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      },
                                      {
                                        "baseExpression": {
                                          "id": 6264,
                                          "name": "tokenIds",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6170,
                                          "src": "9741:8:25",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                            "typeString": "uint256[] calldata"
                                          }
                                        },
                                        "id": 6266,
                                        "indexExpression": {
                                          "hexValue": "30",
                                          "id": 6265,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "9750:1:25",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_0_by_1",
                                            "typeString": "int_const 0"
                                          },
                                          "value": "0"
                                        },
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "9741:11:25",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      {
                                        "baseExpression": {
                                          "id": 6267,
                                          "name": "amounts",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6173,
                                          "src": "9754:7:25",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                            "typeString": "uint256[] calldata"
                                          }
                                        },
                                        "id": 6269,
                                        "indexExpression": {
                                          "hexValue": "30",
                                          "id": 6268,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "kind": "number",
                                          "lValueRequested": false,
                                          "nodeType": "Literal",
                                          "src": "9762:1:25",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_rational_0_by_1",
                                            "typeString": "int_const 0"
                                          },
                                          "value": "0"
                                        },
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "IndexAccess",
                                        "src": "9754:10:25",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "hexValue": "30",
                                            "id": 6272,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "9776:1:25",
                                            "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": 6271,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "NewExpression",
                                          "src": "9766:9:25",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                                            "typeString": "function (uint256) pure returns (bytes memory)"
                                          },
                                          "typeName": {
                                            "id": 6270,
                                            "name": "bytes",
                                            "nodeType": "ElementaryTypeName",
                                            "src": "9770:5:25",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_bytes_storage_ptr",
                                              "typeString": "bytes"
                                            }
                                          }
                                        },
                                        "id": 6273,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "nameLocations": [],
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "9766:12:25",
                                        "tryCall": false,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bytes_memory_ptr",
                                          "typeString": "bytes memory"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        },
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        },
                                        {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        },
                                        {
                                          "typeIdentifier": "t_bytes_memory_ptr",
                                          "typeString": "bytes memory"
                                        }
                                      ],
                                      "id": 6260,
                                      "name": "_mint",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [
                                        6687
                                      ],
                                      "referencedDeclaration": 6687,
                                      "src": "9728:5:25",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                                        "typeString": "function (address,uint256,uint256,bytes memory)"
                                      }
                                    },
                                    "id": 6274,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "nameLocations": [],
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "9728:51:25",
                                    "tryCall": false,
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_tuple$__$",
                                      "typeString": "tuple()"
                                    }
                                  },
                                  "id": 6275,
                                  "nodeType": "ExpressionStatement",
                                  "src": "9728:51:25"
                                },
                                {
                                  "id": 6279,
                                  "nodeType": "UncheckedBlock",
                                  "src": "9797:18:25",
                                  "statements": [
                                    {
                                      "expression": {
                                        "id": 6277,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "nodeType": "UnaryOperation",
                                        "operator": "++",
                                        "prefix": true,
                                        "src": "9809:3:25",
                                        "subExpression": {
                                          "id": 6276,
                                          "name": "i",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6254,
                                          "src": "9811:1:25",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_uint256",
                                            "typeString": "uint256"
                                          }
                                        },
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_uint256",
                                          "typeString": "uint256"
                                        }
                                      },
                                      "id": 6278,
                                      "nodeType": "ExpressionStatement",
                                      "src": "9809:3:25"
                                    }
                                  ]
                                }
                              ]
                            },
                            "condition": {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 6259,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "id": 6256,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6254,
                                "src": "9694:1:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "<",
                              "rightExpression": {
                                "expression": {
                                  "id": 6257,
                                  "name": "to",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6167,
                                  "src": "9698:2:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                    "typeString": "address[] calldata"
                                  }
                                },
                                "id": 6258,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberLocation": "9701:6:25",
                                "memberName": "length",
                                "nodeType": "MemberAccess",
                                "src": "9698:9:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "9694:13:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "id": 6281,
                            "initializationExpression": {
                              "assignments": [
                                6254
                              ],
                              "declarations": [
                                {
                                  "constant": false,
                                  "id": 6254,
                                  "mutability": "mutable",
                                  "name": "i",
                                  "nameLocation": "9691:1:25",
                                  "nodeType": "VariableDeclaration",
                                  "scope": 6281,
                                  "src": "9686:6:25",
                                  "stateVariable": false,
                                  "storageLocation": "default",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  },
                                  "typeName": {
                                    "id": 6253,
                                    "name": "uint",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "9686:4:25",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "visibility": "internal"
                                }
                              ],
                              "id": 6255,
                              "nodeType": "VariableDeclarationStatement",
                              "src": "9686:6:25"
                            },
                            "nodeType": "ForStatement",
                            "src": "9681:148:25"
                          }
                        ]
                      }
                    },
                    "id": 6372,
                    "nodeType": "IfStatement",
                    "src": "9364:1176:25",
                    "trueBody": {
                      "id": 6243,
                      "nodeType": "Block",
                      "src": "9421:118:25",
                      "statements": [
                        {
                          "expression": {
                            "arguments": [
                              {
                                "baseExpression": {
                                  "id": 6232,
                                  "name": "to",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6167,
                                  "src": "9489:2:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                    "typeString": "address[] calldata"
                                  }
                                },
                                "id": 6234,
                                "indexExpression": {
                                  "hexValue": "30",
                                  "id": 6233,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "9492:1:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_rational_0_by_1",
                                    "typeString": "int_const 0"
                                  },
                                  "value": "0"
                                },
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "9489:5:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              {
                                "id": 6235,
                                "name": "tokenIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6170,
                                "src": "9496:8:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              {
                                "id": 6236,
                                "name": "amounts",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6173,
                                "src": "9506:7:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              {
                                "arguments": [
                                  {
                                    "hexValue": "30",
                                    "id": 6239,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": true,
                                    "kind": "number",
                                    "lValueRequested": false,
                                    "nodeType": "Literal",
                                    "src": "9525:1:25",
                                    "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": 6238,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "lValueRequested": false,
                                  "nodeType": "NewExpression",
                                  "src": "9515:9:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                                    "typeString": "function (uint256) pure returns (bytes memory)"
                                  },
                                  "typeName": {
                                    "id": 6237,
                                    "name": "bytes",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "9519:5:25",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes_storage_ptr",
                                      "typeString": "bytes"
                                    }
                                  }
                                },
                                "id": 6240,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "9515:12:25",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                },
                                {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                },
                                {
                                  "typeIdentifier": "t_bytes_memory_ptr",
                                  "typeString": "bytes memory"
                                }
                              ],
                              "id": 6231,
                              "name": "_mintBatch",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [
                                6735
                              ],
                              "referencedDeclaration": 6735,
                              "src": "9478:10:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
                                "typeString": "function (address,uint256[] memory,uint256[] memory,bytes memory)"
                              }
                            },
                            "id": 6241,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "9478:50:25",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 6242,
                          "nodeType": "ExpressionStatement",
                          "src": "9478:50:25"
                        }
                      ]
                    }
                  },
                  "id": 6373,
                  "nodeType": "IfStatement",
                  "src": "9175:1365:25",
                  "trueBody": {
                    "id": 6220,
                    "nodeType": "Block",
                    "src": "9242:116:25",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "baseExpression": {
                                "id": 6205,
                                "name": "to",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6167,
                                "src": "9290:2:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                                  "typeString": "address[] calldata"
                                }
                              },
                              "id": 6207,
                              "indexExpression": {
                                "hexValue": "30",
                                "id": 6206,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "9293:1:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "9290:5:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "baseExpression": {
                                "id": 6208,
                                "name": "tokenIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6170,
                                "src": "9297:8:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 6210,
                              "indexExpression": {
                                "hexValue": "30",
                                "id": 6209,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "9306:1:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "9297:11:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "baseExpression": {
                                "id": 6211,
                                "name": "amounts",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6173,
                                "src": "9310:7:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 6213,
                              "indexExpression": {
                                "hexValue": "30",
                                "id": 6212,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "9318:1:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "9310:10:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "arguments": [
                                {
                                  "hexValue": "30",
                                  "id": 6216,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "9332:1:25",
                                  "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": 6215,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "NewExpression",
                                "src": "9322:9:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_bytes_memory_ptr_$",
                                  "typeString": "function (uint256) pure returns (bytes memory)"
                                },
                                "typeName": {
                                  "id": 6214,
                                  "name": "bytes",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "9326:5:25",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes_storage_ptr",
                                    "typeString": "bytes"
                                  }
                                }
                              },
                              "id": 6217,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "9322:12:25",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_bytes_memory_ptr",
                                "typeString": "bytes memory"
                              }
                            ],
                            "id": 6204,
                            "name": "_mint",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              6687
                            ],
                            "referencedDeclaration": 6687,
                            "src": "9284:5:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                              "typeString": "function (address,uint256,uint256,bytes memory)"
                            }
                          },
                          "id": 6218,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "9284:51:25",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6219,
                        "nodeType": "ExpressionStatement",
                        "src": "9284:51:25"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": {
              "id": 6162,
              "nodeType": "StructuredDocumentation",
              "src": "8877:44:25",
              "text": " @dev Mint existing tokens"
            },
            "id": 6375,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_mintExisting",
            "nameLocation": "8935:13:25",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6174,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6164,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "8957:9:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6375,
                  "src": "8949:17:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6163,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "8949:7:25",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6167,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "8987:2:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6375,
                  "src": "8968:21:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_$dyn_calldata_ptr",
                    "typeString": "address[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6165,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "8968:7:25",
                      "stateMutability": "nonpayable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "id": 6166,
                    "nodeType": "ArrayTypeName",
                    "src": "8968:9:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_$dyn_storage_ptr",
                      "typeString": "address[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6170,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "9010:8:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6375,
                  "src": "8991:27:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6168,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "8991:7:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6169,
                    "nodeType": "ArrayTypeName",
                    "src": "8991:9:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6173,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "9039:7:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6375,
                  "src": "9020:26:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6171,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "9020:7:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6172,
                    "nodeType": "ArrayTypeName",
                    "src": "9020:9:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8948:99:25"
            },
            "returnParameters": {
              "id": 6175,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9057:0:25"
            },
            "scope": 6821,
            "src": "8926:1620:25",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              15100
            ],
            "body": {
              "id": 6409,
              "nodeType": "Block",
              "src": "10720:208:25",
              "statements": [
                {
                  "expression": {
                    "id": 6388,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 6384,
                      "name": "extension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6382,
                      "src": "10730:9:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 6386,
                          "name": "tokenId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6378,
                          "src": "10758:7:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 6385,
                        "name": "_tokenExtension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [
                          13853
                        ],
                        "referencedDeclaration": 13853,
                        "src": "10742:15:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_address_$",
                          "typeString": "function (uint256) view returns (address)"
                        }
                      },
                      "id": 6387,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "10742:24:25",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "10730:36:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 6389,
                  "nodeType": "ExpressionStatement",
                  "src": "10730:36:25"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 6396,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 6391,
                          "name": "extension",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6382,
                          "src": "10784:9:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "arguments": [
                            {
                              "hexValue": "30",
                              "id": 6394,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "10805:1:25",
                              "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": 6393,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "10797:7:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 6392,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "10797:7:25",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 6395,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10797:10:25",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "10784:23:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4e6f20657874656e73696f6e20666f7220746f6b656e",
                        "id": 6397,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10809:24:25",
                        "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": 6390,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "10776:7:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6398,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10776:58:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6399,
                  "nodeType": "ExpressionStatement",
                  "src": "10776:58:25"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6405,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "10852:43:25",
                        "subExpression": {
                          "arguments": [
                            {
                              "id": 6403,
                              "name": "extension",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6382,
                              "src": "10885:9:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "expression": {
                              "id": 6401,
                              "name": "_blacklistedExtensions",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 12440,
                              "src": "10853:22:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_AddressSet_$3529_storage",
                                "typeString": "struct EnumerableSet.AddressSet storage ref"
                              }
                            },
                            "id": 6402,
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "10876:8:25",
                            "memberName": "contains",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 3610,
                            "src": "10853:31:25",
                            "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": 6404,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "10853:42:25",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "457874656e73696f6e20626c61636b6c6973746564",
                        "id": 6406,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "10897:23:25",
                        "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": 6400,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "10844:7:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6407,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "10844:77:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6408,
                  "nodeType": "ExpressionStatement",
                  "src": "10844:77:25"
                }
              ]
            },
            "documentation": {
              "id": 6376,
              "nodeType": "StructuredDocumentation",
              "src": "10552:65:25",
              "text": " @dev See {IERC1155CreatorCore-tokenExtension}."
            },
            "functionSelector": "239be317",
            "id": 6410,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "tokenExtension",
            "nameLocation": "10631:14:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6380,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "10683:8:25"
            },
            "parameters": {
              "id": 6379,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6378,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "10654:7:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6410,
                  "src": "10646:15:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6377,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "10646:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10645:17:25"
            },
            "returnParameters": {
              "id": 6383,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6382,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "10709:9:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6410,
                  "src": "10701:17:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6381,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "10701:7:25",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "10700:19:25"
            },
            "scope": 6821,
            "src": "10622:306:25",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15273
            ],
            "body": {
              "id": 6477,
              "nodeType": "Block",
              "src": "11119:407:25",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        "id": 6435,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 6429,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "id": 6426,
                            "name": "account",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6413,
                            "src": "11137:7:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "expression": {
                              "id": 6427,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 4294967281,
                              "src": "11148:3:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 6428,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberLocation": "11152:6:25",
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "src": "11148:10:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "11137:21:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "||",
                        "rightExpression": {
                          "arguments": [
                            {
                              "id": 6431,
                              "name": "account",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6413,
                              "src": "11179:7:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "expression": {
                                "id": 6432,
                                "name": "msg",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 4294967281,
                                "src": "11188:3:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_magic_message",
                                  "typeString": "msg"
                                }
                              },
                              "id": 6433,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "11192:6:25",
                              "memberName": "sender",
                              "nodeType": "MemberAccess",
                              "src": "11188:10:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 6430,
                            "name": "isApprovedForAll",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 18729,
                            "src": "11162:16:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_address_$_t_address_$returns$_t_bool_$",
                              "typeString": "function (address,address) view returns (bool)"
                            }
                          },
                          "id": 6434,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11162:37:25",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "src": "11137:62:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "43616c6c6572206973206e6f74206f776e6572206f7220617070726f766564",
                        "id": 6436,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "11201:33:25",
                        "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": 6425,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "11129:7:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6437,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11129:106:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6438,
                  "nodeType": "ExpressionStatement",
                  "src": "11129:106:25"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6444,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 6440,
                            "name": "tokenIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6416,
                            "src": "11253:8:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 6441,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "11262:6:25",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "11253:15:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "expression": {
                            "id": 6442,
                            "name": "amounts",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6419,
                            "src": "11272:7:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 6443,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "11280:6:25",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "11272:14:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "11253:33:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "496e76616c696420696e707574",
                        "id": 6445,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "11288:15:25",
                        "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": 6439,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "11245:7:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6446,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11245:59:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6447,
                  "nodeType": "ExpressionStatement",
                  "src": "11245:59:25"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6451,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "id": 6448,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6416,
                        "src": "11318:8:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      "id": 6449,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "11327:6:25",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "11318:15:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "hexValue": "31",
                      "id": 6450,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "11337:1:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_1_by_1",
                        "typeString": "int_const 1"
                      },
                      "value": "1"
                    },
                    "src": "11318:20:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 6469,
                    "nodeType": "Block",
                    "src": "11410:63:25",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 6464,
                              "name": "account",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6413,
                              "src": "11435:7:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "id": 6465,
                              "name": "tokenIds",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6416,
                              "src": "11444:8:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                "typeString": "uint256[] calldata"
                              }
                            },
                            {
                              "id": 6466,
                              "name": "amounts",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6419,
                              "src": "11454:7:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                "typeString": "uint256[] calldata"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                "typeString": "uint256[] calldata"
                              },
                              {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                "typeString": "uint256[] calldata"
                              }
                            ],
                            "id": 6463,
                            "name": "_burnBatch",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              6806
                            ],
                            "referencedDeclaration": 6806,
                            "src": "11424:10:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$",
                              "typeString": "function (address,uint256[] memory,uint256[] memory)"
                            }
                          },
                          "id": 6467,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11424:38:25",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6468,
                        "nodeType": "ExpressionStatement",
                        "src": "11424:38:25"
                      }
                    ]
                  },
                  "id": 6470,
                  "nodeType": "IfStatement",
                  "src": "11314:159:25",
                  "trueBody": {
                    "id": 6462,
                    "nodeType": "Block",
                    "src": "11340:64:25",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "id": 6453,
                              "name": "account",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6413,
                              "src": "11360:7:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            {
                              "baseExpression": {
                                "id": 6454,
                                "name": "tokenIds",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6416,
                                "src": "11369:8:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 6456,
                              "indexExpression": {
                                "hexValue": "30",
                                "id": 6455,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "11378:1:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "11369:11:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            {
                              "baseExpression": {
                                "id": 6457,
                                "name": "amounts",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6419,
                                "src": "11382:7:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                                  "typeString": "uint256[] calldata"
                                }
                              },
                              "id": 6459,
                              "indexExpression": {
                                "hexValue": "30",
                                "id": 6458,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "11390:1:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              },
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "11382:10:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "id": 6452,
                            "name": "_burn",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              6761
                            ],
                            "referencedDeclaration": 6761,
                            "src": "11354:5:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
                              "typeString": "function (address,uint256,uint256)"
                            }
                          },
                          "id": 6460,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "11354:39:25",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6461,
                        "nodeType": "ExpressionStatement",
                        "src": "11354:39:25"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6472,
                        "name": "account",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6413,
                        "src": "11492:7:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 6473,
                        "name": "tokenIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6416,
                        "src": "11501:8:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      },
                      {
                        "id": 6474,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6419,
                        "src": "11511:7:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      ],
                      "id": 6471,
                      "name": "_postBurn",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13735,
                      "src": "11482:9:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_uint256_$dyn_calldata_ptr_$_t_array$_t_uint256_$dyn_calldata_ptr_$returns$__$",
                        "typeString": "function (address,uint256[] calldata,uint256[] calldata)"
                      }
                    },
                    "id": 6475,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11482:37:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6476,
                  "nodeType": "ExpressionStatement",
                  "src": "11482:37:25"
                }
              ]
            },
            "documentation": {
              "id": 6411,
              "nodeType": "StructuredDocumentation",
              "src": "10934:55:25",
              "text": " @dev See {IERC1155CreatorCore-burn}."
            },
            "functionSelector": "3db0f8ab",
            "id": 6478,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 6423,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 6422,
                  "name": "nonReentrant",
                  "nameLocations": [
                    "11106:12:25"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1187,
                  "src": "11106:12:25"
                },
                "nodeType": "ModifierInvocation",
                "src": "11106:12:25"
              }
            ],
            "name": "burn",
            "nameLocation": "11003:4:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6421,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "11097:8:25"
            },
            "parameters": {
              "id": 6420,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6413,
                  "mutability": "mutable",
                  "name": "account",
                  "nameLocation": "11016:7:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6478,
                  "src": "11008:15:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6412,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "11008:7:25",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6416,
                  "mutability": "mutable",
                  "name": "tokenIds",
                  "nameLocation": "11044:8:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6478,
                  "src": "11025:27:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6414,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "11025:7:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6415,
                    "nodeType": "ArrayTypeName",
                    "src": "11025:9:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6419,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "11073:7:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6478,
                  "src": "11054:26:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6417,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "11054:7:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6418,
                    "nodeType": "ArrayTypeName",
                    "src": "11054:9:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11007:74:25"
            },
            "returnParameters": {
              "id": 6424,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11119:0:25"
            },
            "scope": 6821,
            "src": "10994:532:25",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15110
            ],
            "body": {
              "id": 6500,
              "nodeType": "Block",
              "src": "11717:75:25",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "hexValue": "30",
                            "id": 6494,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "number",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "11758:1:25",
                            "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": 6493,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "11750:7:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 6492,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "11750:7:25",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 6495,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "11750:10:25",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 6496,
                        "name": "receivers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6482,
                        "src": "11762:9:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                          "typeString": "address payable[] calldata"
                        }
                      },
                      {
                        "id": 6497,
                        "name": "basisPoints",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6485,
                        "src": "11773:11:25",
                        "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": 6491,
                      "name": "_setRoyaltiesExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13346,
                      "src": "11727:22:25",
                      "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": 6498,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "11727:58:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6499,
                  "nodeType": "ExpressionStatement",
                  "src": "11727:58:25"
                }
              ]
            },
            "documentation": {
              "id": 6479,
              "nodeType": "StructuredDocumentation",
              "src": "11532:56:25",
              "text": " @dev See {ICreatorCore-setRoyalties}."
            },
            "functionSelector": "332dd1ae",
            "id": 6501,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 6489,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 6488,
                  "name": "adminRequired",
                  "nameLocations": [
                    "11703:13:25"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "11703:13:25"
                },
                "nodeType": "ModifierInvocation",
                "src": "11703:13:25"
              }
            ],
            "name": "setRoyalties",
            "nameLocation": "11602:12:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6487,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "11694:8:25"
            },
            "parameters": {
              "id": 6486,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6482,
                  "mutability": "mutable",
                  "name": "receivers",
                  "nameLocation": "11642:9:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6501,
                  "src": "11615:36:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                    "typeString": "address payable[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6480,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "11615:15:25",
                      "stateMutability": "payable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "id": 6481,
                    "nodeType": "ArrayTypeName",
                    "src": "11615:17:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                      "typeString": "address payable[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6485,
                  "mutability": "mutable",
                  "name": "basisPoints",
                  "nameLocation": "11672:11:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6501,
                  "src": "11653:30:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6483,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "11653:7:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6484,
                    "nodeType": "ArrayTypeName",
                    "src": "11653:9:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11614:70:25"
            },
            "returnParameters": {
              "id": 6490,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "11717:0:25"
            },
            "scope": 6821,
            "src": "11593:199:25",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15122
            ],
            "body": {
              "id": 6522,
              "nodeType": "Block",
              "src": "12000:63:25",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6517,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6504,
                        "src": "12024:7:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 6518,
                        "name": "receivers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6507,
                        "src": "12033:9:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                          "typeString": "address payable[] calldata"
                        }
                      },
                      {
                        "id": 6519,
                        "name": "basisPoints",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6510,
                        "src": "12044:11:25",
                        "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": 6516,
                      "name": "_setRoyalties",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13295,
                      "src": "12010:13:25",
                      "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": 6520,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12010:46:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6521,
                  "nodeType": "ExpressionStatement",
                  "src": "12010:46:25"
                }
              ]
            },
            "documentation": {
              "id": 6502,
              "nodeType": "StructuredDocumentation",
              "src": "11798:56:25",
              "text": " @dev See {ICreatorCore-setRoyalties}."
            },
            "functionSelector": "20e4afe2",
            "id": 6523,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 6514,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 6513,
                  "name": "adminRequired",
                  "nameLocations": [
                    "11986:13:25"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "11986:13:25"
                },
                "nodeType": "ModifierInvocation",
                "src": "11986:13:25"
              }
            ],
            "name": "setRoyalties",
            "nameLocation": "11868:12:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6512,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "11977:8:25"
            },
            "parameters": {
              "id": 6511,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6504,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "11889:7:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6523,
                  "src": "11881:15:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6503,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "11881:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6507,
                  "mutability": "mutable",
                  "name": "receivers",
                  "nameLocation": "11925:9:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6523,
                  "src": "11898:36:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                    "typeString": "address payable[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6505,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "11898:15:25",
                      "stateMutability": "payable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "id": 6506,
                    "nodeType": "ArrayTypeName",
                    "src": "11898:17:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                      "typeString": "address payable[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6510,
                  "mutability": "mutable",
                  "name": "basisPoints",
                  "nameLocation": "11955:11:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6523,
                  "src": "11936:30:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6508,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "11936:7:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6509,
                    "nodeType": "ArrayTypeName",
                    "src": "11936:9:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "11880:87:25"
            },
            "returnParameters": {
              "id": 6515,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12000:0:25"
            },
            "scope": 6821,
            "src": "11859:204:25",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15134
            ],
            "body": {
              "id": 6544,
              "nodeType": "Block",
              "src": "12291:74:25",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6539,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6526,
                        "src": "12324:9:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 6540,
                        "name": "receivers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6529,
                        "src": "12335:9:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                          "typeString": "address payable[] calldata"
                        }
                      },
                      {
                        "id": 6541,
                        "name": "basisPoints",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6532,
                        "src": "12346:11:25",
                        "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": 6538,
                      "name": "_setRoyaltiesExtension",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13346,
                      "src": "12301:22:25",
                      "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": 6542,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12301:57:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6543,
                  "nodeType": "ExpressionStatement",
                  "src": "12301:57:25"
                }
              ]
            },
            "documentation": {
              "id": 6524,
              "nodeType": "StructuredDocumentation",
              "src": "12069:65:25",
              "text": " @dev See {ICreatorCore-setRoyaltiesExtension}."
            },
            "functionSelector": "b0fe87c9",
            "id": 6545,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 6536,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 6535,
                  "name": "adminRequired",
                  "nameLocations": [
                    "12277:13:25"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "12277:13:25"
                },
                "nodeType": "ModifierInvocation",
                "src": "12277:13:25"
              }
            ],
            "name": "setRoyaltiesExtension",
            "nameLocation": "12148:21:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6534,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "12268:8:25"
            },
            "parameters": {
              "id": 6533,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6526,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "12178:9:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6545,
                  "src": "12170:17:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6525,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "12170:7:25",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6529,
                  "mutability": "mutable",
                  "name": "receivers",
                  "nameLocation": "12216:9:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6545,
                  "src": "12189:36:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_payable_$dyn_calldata_ptr",
                    "typeString": "address payable[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6527,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "12189:15:25",
                      "stateMutability": "payable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "id": 6528,
                    "nodeType": "ArrayTypeName",
                    "src": "12189:17:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                      "typeString": "address payable[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6532,
                  "mutability": "mutable",
                  "name": "basisPoints",
                  "nameLocation": "12246:11:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6545,
                  "src": "12227:30:25",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6530,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "12227:7:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6531,
                    "nodeType": "ArrayTypeName",
                    "src": "12227:9:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12169:89:25"
            },
            "returnParameters": {
              "id": 6537,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "12291:0:25"
            },
            "scope": 6821,
            "src": "12139:226:25",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15146
            ],
            "body": {
              "id": 6562,
              "nodeType": "Block",
              "src": "12555:46:25",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6559,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6548,
                        "src": "12586:7:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 6558,
                      "name": "_getRoyalties",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13169,
                      "src": "12572:13:25",
                      "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": 6560,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12572:22:25",
                    "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": 6557,
                  "id": 6561,
                  "nodeType": "Return",
                  "src": "12565:29:25"
                }
              ]
            },
            "documentation": {
              "id": 6546,
              "nodeType": "StructuredDocumentation",
              "src": "12371:56:25",
              "text": " @dev See {ICreatorCore-getRoyalties}."
            },
            "functionSelector": "bb3bafd6",
            "id": 6563,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getRoyalties",
            "nameLocation": "12441:12:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6550,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "12493:8:25"
            },
            "parameters": {
              "id": 6549,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6548,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "12462:7:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6563,
                  "src": "12454:15:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6547,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12454:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12453:17:25"
            },
            "returnParameters": {
              "id": 6557,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6553,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6563,
                  "src": "12511:24:25",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr",
                    "typeString": "address payable[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6551,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "12511:15:25",
                      "stateMutability": "payable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "id": 6552,
                    "nodeType": "ArrayTypeName",
                    "src": "12511:17:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                      "typeString": "address payable[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6556,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6563,
                  "src": "12537:16:25",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6554,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "12537:7:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6555,
                    "nodeType": "ArrayTypeName",
                    "src": "12537:9:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12510:44:25"
            },
            "scope": 6821,
            "src": "12432:169:25",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15173
            ],
            "body": {
              "id": 6580,
              "nodeType": "Block",
              "src": "12781:46:25",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6577,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6566,
                        "src": "12812:7:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 6576,
                      "name": "_getRoyalties",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13169,
                      "src": "12798:13:25",
                      "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": 6578,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "12798:22:25",
                    "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": 6575,
                  "id": 6579,
                  "nodeType": "Return",
                  "src": "12791:29:25"
                }
              ]
            },
            "documentation": {
              "id": 6564,
              "nodeType": "StructuredDocumentation",
              "src": "12607:51:25",
              "text": " @dev See {ICreatorCore-getFees}."
            },
            "functionSelector": "d5a06d4c",
            "id": 6581,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getFees",
            "nameLocation": "12672:7:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6568,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "12719:8:25"
            },
            "parameters": {
              "id": 6567,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6566,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "12688:7:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6581,
                  "src": "12680:15:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6565,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12680:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12679:17:25"
            },
            "returnParameters": {
              "id": 6575,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6571,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6581,
                  "src": "12737:24:25",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr",
                    "typeString": "address payable[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6569,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "12737:15:25",
                      "stateMutability": "payable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "id": 6570,
                    "nodeType": "ArrayTypeName",
                    "src": "12737:17:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                      "typeString": "address payable[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6574,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6581,
                  "src": "12763:16:25",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6572,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "12763:7:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6573,
                    "nodeType": "ArrayTypeName",
                    "src": "12763:9:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12736:44:25"
            },
            "scope": 6821,
            "src": "12663:164:25",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15154
            ],
            "body": {
              "id": 6595,
              "nodeType": "Block",
              "src": "13007:53:25",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6592,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6584,
                        "src": "13045:7:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 6591,
                      "name": "_getRoyaltyReceivers",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13186,
                      "src": "13024:20:25",
                      "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": 6593,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13024:29:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr",
                      "typeString": "address payable[] memory"
                    }
                  },
                  "functionReturnParameters": 6590,
                  "id": 6594,
                  "nodeType": "Return",
                  "src": "13017:36:25"
                }
              ]
            },
            "documentation": {
              "id": 6582,
              "nodeType": "StructuredDocumentation",
              "src": "12833:60:25",
              "text": " @dev See {ICreatorCore-getFeeRecipients}."
            },
            "functionSelector": "b9c4d9fb",
            "id": 6596,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getFeeRecipients",
            "nameLocation": "12907:16:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6586,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "12963:8:25"
            },
            "parameters": {
              "id": 6585,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6584,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "12932:7:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6596,
                  "src": "12924:15:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6583,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "12924:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12923:17:25"
            },
            "returnParameters": {
              "id": 6590,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6589,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6596,
                  "src": "12981:24:25",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr",
                    "typeString": "address payable[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6587,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "12981:15:25",
                      "stateMutability": "payable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "id": 6588,
                    "nodeType": "ArrayTypeName",
                    "src": "12981:17:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                      "typeString": "address payable[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "12980:26:25"
            },
            "scope": 6821,
            "src": "12898:162:25",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15162
            ],
            "body": {
              "id": 6610,
              "nodeType": "Block",
              "src": "13215:47:25",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6607,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6599,
                        "src": "13247:7:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 6606,
                      "name": "_getRoyaltyBPS",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13203,
                      "src": "13232:14:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_array$_t_uint256_$dyn_memory_ptr_$",
                        "typeString": "function (uint256) view returns (uint256[] memory)"
                      }
                    },
                    "id": 6608,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13232:23:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                      "typeString": "uint256[] memory"
                    }
                  },
                  "functionReturnParameters": 6605,
                  "id": 6609,
                  "nodeType": "Return",
                  "src": "13225:30:25"
                }
              ]
            },
            "documentation": {
              "id": 6597,
              "nodeType": "StructuredDocumentation",
              "src": "13066:53:25",
              "text": " @dev See {ICreatorCore-getFeeBps}."
            },
            "functionSelector": "0ebd4c7f",
            "id": 6611,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getFeeBps",
            "nameLocation": "13133:9:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6601,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "13182:8:25"
            },
            "parameters": {
              "id": 6600,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6599,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "13151:7:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6611,
                  "src": "13143:15:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6598,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13143:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13142:17:25"
            },
            "returnParameters": {
              "id": 6605,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6604,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6611,
                  "src": "13200:13:25",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6602,
                      "name": "uint",
                      "nodeType": "ElementaryTypeName",
                      "src": "13200:4:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6603,
                    "nodeType": "ArrayTypeName",
                    "src": "13200:6:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13199:15:25"
            },
            "scope": 6821,
            "src": "13124:138:25",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              15184
            ],
            "body": {
              "id": 6629,
              "nodeType": "Block",
              "src": "13443:55:25",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6625,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6614,
                        "src": "13476:7:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 6626,
                        "name": "value",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6616,
                        "src": "13485:5:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 6624,
                      "name": "_getRoyaltyInfo",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13258,
                      "src": "13460:15:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$_t_uint256_$returns$_t_address_$_t_uint256_$",
                        "typeString": "function (uint256,uint256) view returns (address,uint256)"
                      }
                    },
                    "id": 6627,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13460:31:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$_t_address_$_t_uint256_$",
                      "typeString": "tuple(address,uint256)"
                    }
                  },
                  "functionReturnParameters": 6623,
                  "id": 6628,
                  "nodeType": "Return",
                  "src": "13453:38:25"
                }
              ]
            },
            "documentation": {
              "id": 6612,
              "nodeType": "StructuredDocumentation",
              "src": "13272:55:25",
              "text": " @dev See {ICreatorCore-royaltyInfo}."
            },
            "functionSelector": "2a55205a",
            "id": 6630,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "royaltyInfo",
            "nameLocation": "13341:11:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6618,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "13407:8:25"
            },
            "parameters": {
              "id": 6617,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6614,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "13361:7:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6630,
                  "src": "13353:15:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6613,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13353:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6616,
                  "mutability": "mutable",
                  "name": "value",
                  "nameLocation": "13378:5:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6630,
                  "src": "13370:13:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6615,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13370:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13352:32:25"
            },
            "returnParameters": {
              "id": 6623,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6620,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6630,
                  "src": "13425:7:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6619,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "13425:7:25",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6622,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6630,
                  "src": "13434:7:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6621,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13434:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13424:18:25"
            },
            "scope": 6821,
            "src": "13332:166:25",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              1388
            ],
            "body": {
              "id": 6643,
              "nodeType": "Block",
              "src": "13647:42:25",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6640,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6633,
                        "src": "13674:7:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 6639,
                      "name": "_tokenURI",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13017,
                      "src": "13664:9:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$_t_uint256_$returns$_t_string_memory_ptr_$",
                        "typeString": "function (uint256) view returns (string memory)"
                      }
                    },
                    "id": 6641,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "13664:18:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 6638,
                  "id": 6642,
                  "nodeType": "Return",
                  "src": "13657:25:25"
                }
              ]
            },
            "documentation": {
              "id": 6631,
              "nodeType": "StructuredDocumentation",
              "src": "13505:54:25",
              "text": " @dev See {IERC1155MetadataURI-uri}."
            },
            "functionSelector": "0e89341c",
            "id": 6644,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "uri",
            "nameLocation": "13573:3:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6635,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "13614:8:25"
            },
            "parameters": {
              "id": 6634,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6633,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "13585:7:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6644,
                  "src": "13577:15:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6632,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13577:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13576:17:25"
            },
            "returnParameters": {
              "id": 6638,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6637,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6644,
                  "src": "13632:13:25",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 6636,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "13632:6:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13631:15:25"
            },
            "scope": 6821,
            "src": "13564:125:25",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15281
            ],
            "body": {
              "id": 6657,
              "nodeType": "Block",
              "src": "13857:45:25",
              "statements": [
                {
                  "expression": {
                    "baseExpression": {
                      "id": 6653,
                      "name": "_totalSupply",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5335,
                      "src": "13874:12:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                        "typeString": "mapping(uint256 => uint256)"
                      }
                    },
                    "id": 6655,
                    "indexExpression": {
                      "id": 6654,
                      "name": "tokenId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6647,
                      "src": "13887:7:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "13874:21:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 6652,
                  "id": 6656,
                  "nodeType": "Return",
                  "src": "13867:28:25"
                }
              ]
            },
            "documentation": {
              "id": 6645,
              "nodeType": "StructuredDocumentation",
              "src": "13699:66:25",
              "text": " @dev Total amount of tokens in with a given id."
            },
            "functionSelector": "bd85b039",
            "id": 6658,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "totalSupply",
            "nameLocation": "13779:11:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6649,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "13830:8:25"
            },
            "parameters": {
              "id": 6648,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6647,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "13799:7:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6658,
                  "src": "13791:15:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6646,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13791:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13790:17:25"
            },
            "returnParameters": {
              "id": 6652,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6651,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6658,
                  "src": "13848:7:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6650,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13848:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13847:9:25"
            },
            "scope": 6821,
            "src": "13770:132:25",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              19160
            ],
            "body": {
              "id": 6686,
              "nodeType": "Block",
              "src": "14062:91:25",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6674,
                        "name": "account",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6661,
                        "src": "14084:7:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 6675,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6663,
                        "src": "14093:2:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 6676,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6665,
                        "src": "14097:6:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 6677,
                        "name": "data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6667,
                        "src": "14105:4:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 6671,
                        "name": "super",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967271,
                        "src": "14072:5:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_super$_ERC1155CreatorImplementation_$6821_$",
                          "typeString": "type(contract super ERC1155CreatorImplementation)"
                        }
                      },
                      "id": 6673,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "14078:5:25",
                      "memberName": "_mint",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 19160,
                      "src": "14072:11:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (address,uint256,uint256,bytes memory)"
                      }
                    },
                    "id": 6678,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14072:38:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6679,
                  "nodeType": "ExpressionStatement",
                  "src": "14072:38:25"
                },
                {
                  "expression": {
                    "id": 6684,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 6680,
                        "name": "_totalSupply",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5335,
                        "src": "14120:12:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                          "typeString": "mapping(uint256 => uint256)"
                        }
                      },
                      "id": 6682,
                      "indexExpression": {
                        "id": 6681,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6663,
                        "src": "14133:2:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "14120:16:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "+=",
                    "rightHandSide": {
                      "id": 6683,
                      "name": "amount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6665,
                      "src": "14140:6:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14120:26:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 6685,
                  "nodeType": "ExpressionStatement",
                  "src": "14120:26:25"
                }
              ]
            },
            "documentation": {
              "id": 6659,
              "nodeType": "StructuredDocumentation",
              "src": "13908:44:25",
              "text": " @dev See {ERC1155-_mint}."
            },
            "id": 6687,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_mint",
            "nameLocation": "13966:5:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6669,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "14053:8:25"
            },
            "parameters": {
              "id": 6668,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6661,
                  "mutability": "mutable",
                  "name": "account",
                  "nameLocation": "13980:7:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6687,
                  "src": "13972:15:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6660,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "13972:7:25",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6663,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "13997:2:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6687,
                  "src": "13989:10:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6662,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "13989:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6665,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "14009:6:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6687,
                  "src": "14001:14:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6664,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "14001:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6667,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "14030:4:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6687,
                  "src": "14017:17:25",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 6666,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "14017:5:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "13971:64:25"
            },
            "returnParameters": {
              "id": 6670,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "14062:0:25"
            },
            "scope": 6821,
            "src": "13957:196:25",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              19271
            ],
            "body": {
              "id": 6734,
              "nodeType": "Block",
              "src": "14338:186:25",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6705,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6690,
                        "src": "14365:2:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 6706,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6693,
                        "src": "14369:3:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "id": 6707,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6696,
                        "src": "14374:7:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "id": 6708,
                        "name": "data",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6698,
                        "src": "14383:4:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        },
                        {
                          "typeIdentifier": "t_bytes_memory_ptr",
                          "typeString": "bytes memory"
                        }
                      ],
                      "expression": {
                        "id": 6702,
                        "name": "super",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967271,
                        "src": "14348:5:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_super$_ERC1155CreatorImplementation_$6821_$",
                          "typeString": "type(contract super ERC1155CreatorImplementation)"
                        }
                      },
                      "id": 6704,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "14354:10:25",
                      "memberName": "_mintBatch",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 19271,
                      "src": "14348:16:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_bytes_memory_ptr_$returns$__$",
                        "typeString": "function (address,uint256[] memory,uint256[] memory,bytes memory)"
                      }
                    },
                    "id": 6709,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14348:40:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6710,
                  "nodeType": "ExpressionStatement",
                  "src": "14348:40:25"
                },
                {
                  "body": {
                    "id": 6732,
                    "nodeType": "Block",
                    "src": "14428:90:25",
                    "statements": [
                      {
                        "expression": {
                          "id": 6726,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 6718,
                              "name": "_totalSupply",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5335,
                              "src": "14442:12:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                                "typeString": "mapping(uint256 => uint256)"
                              }
                            },
                            "id": 6722,
                            "indexExpression": {
                              "baseExpression": {
                                "id": 6719,
                                "name": "ids",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6693,
                                "src": "14455:3:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                  "typeString": "uint256[] memory"
                                }
                              },
                              "id": 6721,
                              "indexExpression": {
                                "id": 6720,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6712,
                                "src": "14459:1:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "14455:6:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "14442:20:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "+=",
                          "rightHandSide": {
                            "baseExpression": {
                              "id": 6723,
                              "name": "amounts",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6696,
                              "src": "14466:7:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            },
                            "id": 6725,
                            "indexExpression": {
                              "id": 6724,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6712,
                              "src": "14474:1:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "14466:10:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "14442:34:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 6727,
                        "nodeType": "ExpressionStatement",
                        "src": "14442:34:25"
                      },
                      {
                        "id": 6731,
                        "nodeType": "UncheckedBlock",
                        "src": "14490:18:25",
                        "statements": [
                          {
                            "expression": {
                              "id": 6729,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "14502:3:25",
                              "subExpression": {
                                "id": 6728,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6712,
                                "src": "14504:1:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 6730,
                            "nodeType": "ExpressionStatement",
                            "src": "14502:3:25"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6717,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 6714,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6712,
                      "src": "14411:1:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 6715,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6693,
                        "src": "14415:3:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 6716,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "14419:6:25",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "14415:10:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14411:14:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6733,
                  "initializationExpression": {
                    "assignments": [
                      6712
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 6712,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "14408:1:25",
                        "nodeType": "VariableDeclaration",
                        "scope": 6733,
                        "src": "14403:6:25",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 6711,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "14403:4:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 6713,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "14403:6:25"
                  },
                  "nodeType": "ForStatement",
                  "src": "14398:120:25"
                }
              ]
            },
            "documentation": {
              "id": 6688,
              "nodeType": "StructuredDocumentation",
              "src": "14159:49:25",
              "text": " @dev See {ERC1155-_mintBatch}."
            },
            "id": 6735,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_mintBatch",
            "nameLocation": "14222:10:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6700,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "14329:8:25"
            },
            "parameters": {
              "id": 6699,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6690,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "14241:2:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6735,
                  "src": "14233:10:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6689,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "14233:7:25",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6693,
                  "mutability": "mutable",
                  "name": "ids",
                  "nameLocation": "14262:3:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6735,
                  "src": "14245:20:25",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6691,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "14245:7:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6692,
                    "nodeType": "ArrayTypeName",
                    "src": "14245:9:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6696,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "14284:7:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6735,
                  "src": "14267:24:25",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6694,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "14267:7:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6695,
                    "nodeType": "ArrayTypeName",
                    "src": "14267:9:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6698,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "14306:4:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6735,
                  "src": "14293:17:25",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 6697,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "14293:5:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14232:79:25"
            },
            "returnParameters": {
              "id": 6701,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "14338:0:25"
            },
            "scope": 6821,
            "src": "14213:311:25",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              19376
            ],
            "body": {
              "id": 6760,
              "nodeType": "Block",
              "src": "14665:85:25",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6749,
                        "name": "account",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6738,
                        "src": "14687:7:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 6750,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6740,
                        "src": "14696:2:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 6751,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6742,
                        "src": "14700:6:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 6746,
                        "name": "super",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967271,
                        "src": "14675:5:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_super$_ERC1155CreatorImplementation_$6821_$",
                          "typeString": "type(contract super ERC1155CreatorImplementation)"
                        }
                      },
                      "id": 6748,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "14681:5:25",
                      "memberName": "_burn",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 19376,
                      "src": "14675:11:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (address,uint256,uint256)"
                      }
                    },
                    "id": 6752,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14675:32:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6753,
                  "nodeType": "ExpressionStatement",
                  "src": "14675:32:25"
                },
                {
                  "expression": {
                    "id": 6758,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 6754,
                        "name": "_totalSupply",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5335,
                        "src": "14717:12:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                          "typeString": "mapping(uint256 => uint256)"
                        }
                      },
                      "id": 6756,
                      "indexExpression": {
                        "id": 6755,
                        "name": "id",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6740,
                        "src": "14730:2:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "14717:16:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "-=",
                    "rightHandSide": {
                      "id": 6757,
                      "name": "amount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6742,
                      "src": "14737:6:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14717:26:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 6759,
                  "nodeType": "ExpressionStatement",
                  "src": "14717:26:25"
                }
              ]
            },
            "documentation": {
              "id": 6736,
              "nodeType": "StructuredDocumentation",
              "src": "14530:44:25",
              "text": " @dev See {ERC1155-_burn}."
            },
            "id": 6761,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_burn",
            "nameLocation": "14588:5:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6744,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "14656:8:25"
            },
            "parameters": {
              "id": 6743,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6738,
                  "mutability": "mutable",
                  "name": "account",
                  "nameLocation": "14602:7:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6761,
                  "src": "14594:15:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6737,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "14594:7:25",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6740,
                  "mutability": "mutable",
                  "name": "id",
                  "nameLocation": "14619:2:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6761,
                  "src": "14611:10:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6739,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "14611:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6742,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "14631:6:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6761,
                  "src": "14623:14:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6741,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "14623:7:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14593:45:25"
            },
            "returnParameters": {
              "id": 6745,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "14665:0:25"
            },
            "scope": 6821,
            "src": "14579:171:25",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              19499
            ],
            "body": {
              "id": 6805,
              "nodeType": "Block",
              "src": "14921:185:25",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6777,
                        "name": "account",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6764,
                        "src": "14948:7:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 6778,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6767,
                        "src": "14957:3:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      {
                        "id": 6779,
                        "name": "amounts",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6770,
                        "src": "14962:7:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      ],
                      "expression": {
                        "id": 6774,
                        "name": "super",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 4294967271,
                        "src": "14931:5:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_super$_ERC1155CreatorImplementation_$6821_$",
                          "typeString": "type(contract super ERC1155CreatorImplementation)"
                        }
                      },
                      "id": 6776,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "14937:10:25",
                      "memberName": "_burnBatch",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 19499,
                      "src": "14931:16:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$_t_array$_t_uint256_$dyn_memory_ptr_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (address,uint256[] memory,uint256[] memory)"
                      }
                    },
                    "id": 6780,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "14931:39:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6781,
                  "nodeType": "ExpressionStatement",
                  "src": "14931:39:25"
                },
                {
                  "body": {
                    "id": 6803,
                    "nodeType": "Block",
                    "src": "15010:90:25",
                    "statements": [
                      {
                        "expression": {
                          "id": 6797,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "baseExpression": {
                              "id": 6789,
                              "name": "_totalSupply",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5335,
                              "src": "15024:12:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_uint256_$_t_uint256_$",
                                "typeString": "mapping(uint256 => uint256)"
                              }
                            },
                            "id": 6793,
                            "indexExpression": {
                              "baseExpression": {
                                "id": 6790,
                                "name": "ids",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6767,
                                "src": "15037:3:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                  "typeString": "uint256[] memory"
                                }
                              },
                              "id": 6792,
                              "indexExpression": {
                                "id": 6791,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6783,
                                "src": "15041:1:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "IndexAccess",
                              "src": "15037:6:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": true,
                            "nodeType": "IndexAccess",
                            "src": "15024:20:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "-=",
                          "rightHandSide": {
                            "baseExpression": {
                              "id": 6794,
                              "name": "amounts",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6770,
                              "src": "15048:7:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            },
                            "id": 6796,
                            "indexExpression": {
                              "id": 6795,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6783,
                              "src": "15056:1:25",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "15048:10:25",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "15024:34:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 6798,
                        "nodeType": "ExpressionStatement",
                        "src": "15024:34:25"
                      },
                      {
                        "id": 6802,
                        "nodeType": "UncheckedBlock",
                        "src": "15072:18:25",
                        "statements": [
                          {
                            "expression": {
                              "id": 6800,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "nodeType": "UnaryOperation",
                              "operator": "++",
                              "prefix": true,
                              "src": "15084:3:25",
                              "subExpression": {
                                "id": 6799,
                                "name": "i",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6783,
                                "src": "15086:1:25",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "id": 6801,
                            "nodeType": "ExpressionStatement",
                            "src": "15084:3:25"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6788,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 6785,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6783,
                      "src": "14993:1:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "expression": {
                        "id": 6786,
                        "name": "ids",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6767,
                        "src": "14997:3:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                          "typeString": "uint256[] memory"
                        }
                      },
                      "id": 6787,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "15001:6:25",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "14997:10:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "14993:14:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6804,
                  "initializationExpression": {
                    "assignments": [
                      6783
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 6783,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "14990:1:25",
                        "nodeType": "VariableDeclaration",
                        "scope": 6804,
                        "src": "14985:6:25",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 6782,
                          "name": "uint",
                          "nodeType": "ElementaryTypeName",
                          "src": "14985:4:25",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 6784,
                    "nodeType": "VariableDeclarationStatement",
                    "src": "14985:6:25"
                  },
                  "nodeType": "ForStatement",
                  "src": "14980:120:25"
                }
              ]
            },
            "documentation": {
              "id": 6762,
              "nodeType": "StructuredDocumentation",
              "src": "14756:49:25",
              "text": " @dev See {ERC1155-_burnBatch}."
            },
            "id": 6806,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_burnBatch",
            "nameLocation": "14819:10:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6772,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "14912:8:25"
            },
            "parameters": {
              "id": 6771,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6764,
                  "mutability": "mutable",
                  "name": "account",
                  "nameLocation": "14838:7:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6806,
                  "src": "14830:15:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6763,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "14830:7:25",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6767,
                  "mutability": "mutable",
                  "name": "ids",
                  "nameLocation": "14864:3:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6806,
                  "src": "14847:20:25",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6765,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "14847:7:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6766,
                    "nodeType": "ArrayTypeName",
                    "src": "14847:9:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6770,
                  "mutability": "mutable",
                  "name": "amounts",
                  "nameLocation": "14886:7:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6806,
                  "src": "14869:24:25",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6768,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "14869:7:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6769,
                    "nodeType": "ArrayTypeName",
                    "src": "14869:9:25",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "14829:65:25"
            },
            "returnParameters": {
              "id": 6773,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "14921:0:25"
            },
            "scope": 6821,
            "src": "14810:296:25",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              15190
            ],
            "body": {
              "id": 6819,
              "nodeType": "Block",
              "src": "15258:51:25",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6816,
                        "name": "extension",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6809,
                        "src": "15292:9:25",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 6815,
                      "name": "_setApproveTransferBase",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 13454,
                      "src": "15268:23:25",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 6817,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "15268:34:25",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6818,
                  "nodeType": "ExpressionStatement",
                  "src": "15268:34:25"
                }
              ]
            },
            "documentation": {
              "id": 6807,
              "nodeType": "StructuredDocumentation",
              "src": "15112:62:25",
              "text": " @dev See {ICreatorCore-setApproveTransfer}."
            },
            "functionSelector": "596798ad",
            "id": 6820,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 6813,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 6812,
                  "name": "adminRequired",
                  "nameLocations": [
                    "15244:13:25"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 248,
                  "src": "15244:13:25"
                },
                "nodeType": "ModifierInvocation",
                "src": "15244:13:25"
              }
            ],
            "name": "setApproveTransfer",
            "nameLocation": "15188:18:25",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6811,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "15235:8:25"
            },
            "parameters": {
              "id": 6810,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6809,
                  "mutability": "mutable",
                  "name": "extension",
                  "nameLocation": "15215:9:25",
                  "nodeType": "VariableDeclaration",
                  "scope": 6820,
                  "src": "15207:17:25",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6808,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "15207:7:25",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "15206:19:25"
            },
            "returnParameters": {
              "id": 6814,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "15258:0:25"
            },
            "scope": 6821,
            "src": "15179:130:25",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 6822,
        "src": "309:15002:25",
        "usedErrors": []
      }
    ],
    "src": "33:15278:25"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.19+commit.7dd6d404.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.12",
  "updatedAt": "2023-03-22T17:07:39.632Z",
  "devdoc": {
    "details": "ERC1155Creator implementation",
    "events": {
      "ApprovalForAll(address,address,bool)": {
        "details": "Emitted when `account` grants or revokes permission to `operator` to transfer their tokens, according to `approved`."
      },
      "Initialized(uint8)": {
        "details": "Triggered when the contract has been initialized or reinitialized."
      },
      "TransferBatch(address,address,address,uint256[],uint256[])": {
        "details": "Equivalent to multiple {TransferSingle} events, where `operator`, `from` and `to` are the same for all transfers."
      },
      "TransferSingle(address,address,address,uint256,uint256)": {
        "details": "Emitted when `value` tokens of token type `id` are transferred from `from` to `to` by `operator`."
      },
      "URI(string,uint256)": {
        "details": "Emitted when the URI for token type `id` changes to `value`, if it is a non-programmatic URI. If an {URI} event was emitted for `id`, the standard https://eips.ethereum.org/EIPS/eip-1155#metadata-extensions[guarantees] that `value` will equal the value returned by {IERC1155MetadataURI-uri}."
      }
    },
    "kind": "dev",
    "methods": {
      "approveAdmin(address)": {
        "details": "See {IAdminControl-approveAdmin}."
      },
      "balanceOf(address,uint256)": {
        "details": "See {IERC1155-balanceOf}. Requirements: - `account` cannot be the zero address."
      },
      "balanceOfBatch(address[],uint256[])": {
        "details": "See {IERC1155-balanceOfBatch}. Requirements: - `accounts` and `ids` must have the same length."
      },
      "blacklistExtension(address)": {
        "details": "See {ICreatorCore-blacklistExtension}."
      },
      "burn(address,uint256[],uint256[])": {
        "details": "See {IERC1155CreatorCore-burn}."
      },
      "getAdmins()": {
        "details": "See {IAdminControl-getAdmins}."
      },
      "getApproveTransfer()": {
        "details": "See {ICreatorCore-getApproveTransfer}."
      },
      "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 {IERC1155-isApprovedForAll}."
      },
      "mintBaseExisting(address[],uint256[],uint256[])": {
        "details": "See {IERC1155CreatorCore-mintBaseExisting}."
      },
      "mintBaseNew(address[],uint256[],string[])": {
        "details": "See {IERC1155CreatorCore-mintBaseNew}."
      },
      "mintExtensionExisting(address[],uint256[],uint256[])": {
        "details": "See {IERC1155CreatorCore-mintExtensionExisting}."
      },
      "mintExtensionNew(address[],uint256[],string[])": {
        "details": "See {IERC1155CreatorCore-mintExtensionNew}."
      },
      "owner()": {
        "details": "Returns the address of the current owner."
      },
      "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}."
      },
      "safeBatchTransferFrom(address,address,uint256[],uint256[],bytes)": {
        "details": "See {IERC1155-safeBatchTransferFrom}."
      },
      "safeTransferFrom(address,address,uint256,uint256,bytes)": {
        "details": "See {IERC1155-safeTransferFrom}."
      },
      "setApprovalForAll(address,bool)": {
        "details": "See {IERC1155-setApprovalForAll}."
      },
      "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}."
      },
      "tokenExtension(uint256)": {
        "details": "See {IERC1155CreatorCore-tokenExtension}."
      },
      "totalSupply(uint256)": {
        "details": "Total amount of tokens in with a given id."
      },
      "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}."
      },
      "uri(uint256)": {
        "details": "See {IERC1155MetadataURI-uri}."
      }
    },
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {
      "initialize(string,string)": {
        "notice": "Initializer"
      }
    },
    "version": 1
  }
}