{
  "contractName": "MockERC721CreatorExtensionOverride",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "creator",
          "type": "address"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "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": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "admin",
          "type": "address"
        }
      ],
      "name": "approveAdmin",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getAdmins",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "admins",
          "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": [],
      "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": "creator",
          "type": "address"
        },
        {
          "internalType": "bool",
          "name": "enabled",
          "type": "bool"
        }
      ],
      "name": "setApproveTransfer",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "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": "to",
          "type": "address"
        }
      ],
      "name": "testMint",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bool",
          "name": "enabled",
          "type": "bool"
        }
      ],
      "name": "setApproveEnabled",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "string",
          "name": "uri",
          "type": "string"
        }
      ],
      "name": "setTokenURI",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "approveTransfer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "creator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "name": "tokenURI",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        },
        {
          "internalType": "address payable[]",
          "name": "receivers",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "values",
          "type": "uint256[]"
        }
      ],
      "name": "setRoyaltyOverrides",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "creator",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "tokenId",
          "type": "uint256"
        }
      ],
      "name": "getRoyalties",
      "outputs": [
        {
          "internalType": "address payable[]",
          "name": "",
          "type": "address[]"
        },
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.8.19+commit.7dd6d404\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"inputs\":[{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"}],\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"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\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"approveAdmin\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"approveTransfer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getAdmins\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"admins\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"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\":\"address\",\"name\":\"admin\",\"type\":\"address\"}],\"name\":\"isAdmin\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"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\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"setApproveEnabled\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"bool\",\"name\":\"enabled\",\"type\":\"bool\"}],\"name\":\"setApproveTransfer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"tokenId\",\"type\":\"uint256\"},{\"internalType\":\"address payable[]\",\"name\":\"receivers\",\"type\":\"address[]\"},{\"internalType\":\"uint256[]\",\"name\":\"values\",\"type\":\"uint256[]\"}],\"name\":\"setRoyaltyOverrides\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"string\",\"name\":\"uri\",\"type\":\"string\"}],\"name\":\"setTokenURI\",\"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\":\"to\",\"type\":\"address\"}],\"name\":\"testMint\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"creator\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"name\":\"tokenURI\",\"outputs\":[{\"internalType\":\"string\",\"name\":\"\",\"type\":\"string\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"approveAdmin(address)\":{\"details\":\"See {IAdminControl-approveAdmin}.\"},\"getAdmins()\":{\"details\":\"See {IAdminControl-getAdmins}.\"},\"getRoyalties(address,uint256)\":{\"details\":\"See {ICreatorExtensionRoyalties-getRoyalties}\"},\"isAdmin(address)\":{\"details\":\"See {IAdminControl-isAdmin}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"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}.\"},\"setApproveTransfer(address,bool)\":{\"details\":\"See {IERC721CreatorExtensionApproveTransfer-setApproveTransfer}\"},\"supportsInterface(bytes4)\":{\"details\":\"See {IERC165-supportsInterface}.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"}},\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/mocks/MockERC721CreatorExtensionOverride.sol\":\"MockERC721CreatorExtensionOverride\"},\"evmVersion\":\"paris\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":25},\"remappings\":[]},\"sources\":{\"@manifoldxyz/libraries-solidity/contracts/access/AdminControl.sol\":{\"keccak256\":\"0xaed5e7784e33745ab1b16f1d87b22084a8b25d531c1dcb8dc41fc2a89e2617da\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://44837a9cc639062b2d7424a10e9d579b8d3a9bc1cefede2cfbb917bee8f452ae\",\"dweb:/ipfs/QmburkqmRDZYWjKPRUynhdfkAfP5QDKcXH4WCbH1JC8UDq\"]},\"@manifoldxyz/libraries-solidity/contracts/access/IAdminControl.sol\":{\"keccak256\":\"0x7cc2e4e7d9052532f445e62ec1fa2f05cc0f5d1d8ee1fea913b43a132277bf2f\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://266618317d0654fe209b5450b8b5afa3a4a8d41294a2b37ddbae540099859887\",\"dweb:/ipfs/QmYksDqoxhachoqZquXGtjfiuAWJ1rxAKLtUYPL3YboBkE\"]},\"@openzeppelin/contracts/access/Ownable.sol\":{\"keccak256\":\"0xa94b34880e3c1b0b931662cb1c09e5dfa6662f31cba80e07c5ee71cd135c9673\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://40fb1b5102468f783961d0af743f91b9980cf66b50d1d12009f6bb1869cea4d2\",\"dweb:/ipfs/QmYqEbJML4jB1GHbzD4cUZDtJg5wVwNm3vDJq1GbyDus8y\"]},\"@openzeppelin/contracts/utils/Context.sol\":{\"keccak256\":\"0xe2e337e6dde9ef6b680e07338c493ebea1b5fd09b43424112868e9cc1706bca7\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://6df0ddf21ce9f58271bdfaa85cde98b200ef242a05a3f85c2bc10a8294800a92\",\"dweb:/ipfs/QmRK2Y5Yc6BK7tGKkgsgn3aJEQGi5aakeSPZvS65PV8Xp3\"]},\"@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/structs/EnumerableSet.sol\":{\"keccak256\":\"0xc3ff3f5c4584e1d9a483ad7ced51ab64523201f4e3d3c65293e4ca8aeb77a961\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://d7d3dd6067a994690471b5fc71b6f81fac3847798b37d404f74db00b4d3c3d0e\",\"dweb:/ipfs/QmRHF1RarifjNi93RttouNPkYZGyu6CD926PgRDzD5iL35\"]},\"project:/contracts/core/ICreatorCore.sol\":{\"keccak256\":\"0x6bdcb757953594d3a259f1d68ec3d208ca42dba02115f08a6e32e2936ccb0349\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://dd1853dabcd57eb9b735b3991cf59259cd28cdeca1353495b5c59dc0db2d85df\",\"dweb:/ipfs/QmfJLFZ7RoMvdR7kJLR7QmqreS1x5VNJSa7xvjVsC4mXte\"]},\"project:/contracts/core/IERC721CreatorCore.sol\":{\"keccak256\":\"0xb168262afd1960a48d9c2088b7c24df3c0e5e190d2e2451e8af38983cf713bad\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://8b8e621daf8a34967aa796482e02521390328f84a130f064e67aafc1b11748e5\",\"dweb:/ipfs/QmRC4suf2UXxkfy9NazSHwVAHLFeuzqAuQPmZrf1KQfX7f\"]},\"project:/contracts/extensions/CreatorExtension.sol\":{\"keccak256\":\"0x36fe8d17e2364675e2bdd3fc6539976613cac057db580f3d43a202865f7f5cc9\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://3a6f47309d37ef8dcc76802ab2c8a1500b2160099c9e368f6ac0bf05175e0b97\",\"dweb:/ipfs/QmbyMW37myT5wuQuAjTcna7AuEn8b5EgUh2sPqR9VSTF3B\"]},\"project:/contracts/extensions/CreatorExtensionRoyalties.sol\":{\"keccak256\":\"0xc965562ddb6e88694ffa5051d9cdde3959ef037f9ccc1f48fb47585c0a1a5945\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://04d085cc56c36a3f486b2ef37826232919d1fe67c9226ff70ca1d478aa6ea444\",\"dweb:/ipfs/QmXL5Sg78BPeuw6wTAwkKVBNKA1aahGWoFLUCw1n6GKcqz\"]},\"project:/contracts/extensions/ERC721/ERC721CreatorExtension.sol\":{\"keccak256\":\"0xb3b9d1f9b526cb52bf8a969cc40b6034498298d5d9c006c857f99d63ca34993e\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://7e42892b8c70ac4aef793b8f6e284dce6d1373605299a9df1ecbf3ce7391850b\",\"dweb:/ipfs/QmaPvFtVH1PKn1RyeReuLhUAwk4dev7x6KkCKCTEA4Q3iP\"]},\"project:/contracts/extensions/ERC721/ERC721CreatorExtensionApproveTransfer.sol\":{\"keccak256\":\"0x10f16f1323dd895ae9f8978579c5a51e70f460f371f3f56ef39de2c8b085c0e8\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://4e3551da7118508353393ec590487ac7336884897449378ec87b7560974a1181\",\"dweb:/ipfs/QmRxb4P883XmBa7hMsYPtUsN1Jui9kHKXxhzrSmLFoMVAV\"]},\"project:/contracts/extensions/ERC721/IERC721CreatorExtensionApproveTransfer.sol\":{\"keccak256\":\"0xf775f61378aaabce44f639c5ba3978dcd891a3a25379a9465a161edd5f2ca486\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c67ca952670ffe8bc506b8a59cd5f06b5d6524946013e72023ed53a7d3f97a4f\",\"dweb:/ipfs/QmUXt1nMDmCeHN8SuHDUUZdMbBvZsVJHeborAu1pWtFgHS\"]},\"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/mocks/MockERC721CreatorExtensionOverride.sol\":{\"keccak256\":\"0xdd0d72d21d6f44726be33b4a0f92ade7646cccd4799c608925048483d0307eaa\",\"license\":\"MIT\",\"urls\":[\"bzz-raw://c22cc5989552f88407daa4a7098975f33cf90fc2fe0c0289e434a19ceb7f3f5c\",\"dweb:/ipfs/QmPQiBAVAhRPsApjaqjCHmDq5ur9aqmj62iej333EJmfjL\"]}},\"version\":1}",
  "bytecode": "0x608060405234801561001057600080fd5b506040516114fe3803806114fe83398101604081905261002f916100ad565b6100383361005d565b600580546001600160a01b0319166001600160a01b03929092169190911790556100dd565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156100bf57600080fd5b81516001600160a01b03811681146100d657600080fd5b9392505050565b611412806100ec6000396000f3fe608060405234801561001057600080fd5b50600436106100d05760003560e01c806301ffc9a7146100d55780631b95a227146100fd57806324d7806c146101125780632d3456701461012557806331ae450b146101385780635e6a6f8a1461014d5780636d73e66914610169578063715018a61461017c5780638da5cb5b146101845780639ca7dc7a14610199578063c70c875a146101ba578063d9accf92146101cd578063dc83b1b9146101ee578063e0df5b6f14610201578063e9dc637514610214578063f2fde38b14610234575b600080fd5b6100e86100e3366004610d72565b610247565b60405190151581526020015b60405180910390f35b61011061010b366004610dc6565b610272565b005b6100e8610120366004610dfb565b6103c1565b610110610133366004610dfb565b6103f0565b61014061044e565b6040516100f49190610e18565b6100e861015b366004610e65565b60035460ff16949350505050565b610110610177366004610dfb565b6104fc565b610110610554565b61018c610568565b6040516100f49190610eb6565b6101ac6101a7366004610eca565b610577565b6040516100f4929190610ef6565b6101106101c8366004610dfb565b6106bd565b6101106101db366004610f7a565b6003805460ff1916911515919091179055565b6101106101fc366004611069565b610730565b61011061020f366004611135565b61077f565b610227610222366004610eca565b610791565b6040516100f491906111a6565b610110610242366004610dfb565b610854565b60006001600160e01b0319821663e9dc637560e01b148061026c575061026c826108ca565b92915050565b3361027b610568565b6001600160a01b0316148061029657506102966001336108ef565b6102f35760405162461bcd60e51b8152602060048201526024808201527f41646d696e436f6e74726f6c3a204d757374206265206f776e6572206f7220616044820152633236b4b760e11b60648201526084015b60405180910390fd5b6103048263b5d2729f60e01b610914565b6103625760405162461bcd60e51b815260206004820152602960248201527f63726561746f72206d75737420696d706c656d656e74204945524337323143726044820152686561746f72436f726560b81b60648201526084016102ea565b604051635606467d60e11b815281151560048201526001600160a01b0383169063ac0c8cfa90602401600060405180830381600087803b1580156103a557600080fd5b505af11580156103b9573d6000803e3d6000fd5b505050505050565b6000816001600160a01b03166103d5610568565b6001600160a01b0316148061026c575061026c6001836108ef565b6103f8610930565b6104036001826108ef565b1561044b5760405133906001600160a01b038316907f7c0c3c84c67c85fcac635147348bfe374c24a1a93d0366d1cfe9d8853cbf89d590600090a361044960018261098f565b505b50565b606061045a60016109a4565b6001600160401b0381111561047157610471610f95565b60405190808252806020026020018201604052801561049a578160200160208202803683370190505b50905060005b6104aa60016109a4565b8110156104f8576104bc6001826109ae565b8282815181106104ce576104ce6111f4565b6001600160a01b0390921660209283029190910190910152806104f081611220565b9150506104a0565b5090565b610504610930565b61050f6001826108ef565b61044b5760405133906001600160a01b038316907f7e1a1a08d52e4ba0e21554733d66165fd5151f99460116223d9e3a608eec5cb190600090a36104496001826109ba565b61055c610930565b61056660006109cf565b565b6000546001600160a01b031690565b60055460609081906001600160a01b038581169116146105a95760405162461bcd60e51b81526004016102ea90611239565b6000838152600660205260409020541561069c57600083815260066020908152604080832081518154606094810282018501845292810183815290939192849284919084018282801561062557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610607575b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561067d57602002820191906000526020600020905b815481526020019060010190808311610669575b50505050508152505090508060000151816020015192509250506106b6565b505060408051600080825260208201908152818301909252905b9250929050565b600554604051630525194b60e31b81526001600160a01b0390911690632928ca58906106ed908490600401610eb6565b6020604051808303816000875af115801561070c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610449919061125a565b60408051808201825283815260208082018490526000868152600682529290922081518051929391926107669284920190610cc1565b5060208281015180516103b99260018501920190610d22565b600461078c8284836112f3565b505050565b6005546060906001600160a01b038481169116146107c15760405162461bcd60e51b81526004016102ea90611239565b600480546107ce90611273565b80601f01602080910402602001604051908101604052809291908181526020018280546107fa90611273565b80156108475780601f1061081c57610100808354040283529160200191610847565b820191906000526020600020905b81548152906001019060200180831161082a57829003601f168201915b5050505050905092915050565b61085c610930565b6001600160a01b0381166108c15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ea565b61044b816109cf565b60006001600160e01b03198216634e53ee3d60e11b148061026c575061026c82610a1f565b6001600160a01b038116600090815260018301602052604081205415155b9392505050565b600061091f83610a44565b801561090d575061090d8383610a77565b33610939610568565b6001600160a01b0316146105665760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102ea565b600061090d836001600160a01b038416610b00565b600061026c825490565b600061090d8383610bf3565b600061090d836001600160a01b038416610c1d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160e01b031982166345ffcdad60e01b148061026c575061026c82610c6c565b6000610a57826301ffc9a760e01b610a77565b801561026c5750610a70826001600160e01b0319610a77565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d91506000519050828015610ae9575060208210155b8015610af55750600081115b979650505050505050565b60008181526001830160205260408120548015610be9576000610b246001836113b3565b8554909150600090610b38906001906113b3565b9050818114610b9d576000866000018281548110610b5857610b586111f4565b9060005260206000200154905080876000018481548110610b7b57610b7b6111f4565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080610bae57610bae6113c6565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061026c565b600091505061026c565b6000826000018281548110610c0a57610c0a6111f4565b9060005260206000200154905092915050565b6000818152600183016020526040812054610c645750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561026c565b50600061026c565b60006001600160e01b03198216637005caad60e01b148061026c575061026c8260006001600160e01b03198216632a9f3abf60e11b148061026c57506301ffc9a760e01b6001600160e01b031983161461026c565b828054828255906000526020600020908101928215610d16579160200282015b82811115610d1657825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190610ce1565b506104f8929150610d5d565b828054828255906000526020600020908101928215610d16579160200282015b82811115610d16578251825591602001919060010190610d42565b5b808211156104f85760008155600101610d5e565b600060208284031215610d8457600080fd5b81356001600160e01b03198116811461090d57600080fd5b6001600160a01b038116811461044b57600080fd5b80358015158114610dc157600080fd5b919050565b60008060408385031215610dd957600080fd5b8235610de481610d9c565b9150610df260208401610db1565b90509250929050565b600060208284031215610e0d57600080fd5b813561090d81610d9c565b6020808252825182820181905260009190848201906040850190845b81811015610e595783516001600160a01b031683529284019291840191600101610e34565b50909695505050505050565b60008060008060808587031215610e7b57600080fd5b8435610e8681610d9c565b93506020850135610e9681610d9c565b92506040850135610ea681610d9c565b9396929550929360600135925050565b6001600160a01b0391909116815260200190565b60008060408385031215610edd57600080fd5b8235610ee881610d9c565b946020939093013593505050565b604080825283519082018190526000906020906060840190828701845b82811015610f385781516001600160a01b031684529284019290840190600101610f13565b5050508381038285015284518082528583019183019060005b81811015610f6d57835183529284019291840191600101610f51565b5090979650505050505050565b600060208284031215610f8c57600080fd5b61090d82610db1565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715610fd357610fd3610f95565b604052919050565b60006001600160401b03821115610ff457610ff4610f95565b5060051b60200190565b600082601f83011261100f57600080fd5b8135602061102461101f83610fdb565b610fab565b82815260059290921b8401810191818101908684111561104357600080fd5b8286015b8481101561105e5780358352918301918301611047565b509695505050505050565b60008060006060848603121561107e57600080fd5b833592506020808501356001600160401b038082111561109d57600080fd5b818701915087601f8301126110b157600080fd5b81356110bf61101f82610fdb565b81815260059190911b8301840190848101908a8311156110de57600080fd5b938501935b828510156111055784356110f681610d9c565b825293850193908501906110e3565b96505050604087013592508083111561111d57600080fd5b505061112b86828701610ffe565b9150509250925092565b6000806020838503121561114857600080fd5b82356001600160401b038082111561115f57600080fd5b818501915085601f83011261117357600080fd5b81358181111561118257600080fd5b86602082850101111561119457600080fd5b60209290920196919550909350505050565b600060208083528351808285015260005b818110156111d3578581018301518582016040015282016111b7565b506000604082860101526040601f19601f8301168501019250505092915050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016112325761123261120a565b5060010190565b602080825260079082015266125b9d985b1a5960ca1b604082015260600190565b60006020828403121561126c57600080fd5b5051919050565b600181811c9082168061128757607f821691505b6020821081036112a757634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561078c57600081815260208120601f850160051c810160208610156112d45750805b601f850160051c820191505b818110156103b9578281556001016112e0565b6001600160401b0383111561130a5761130a610f95565b61131e836113188354611273565b836112ad565b6000601f841160018114611352576000851561133a5750838201355b600019600387901b1c1916600186901b1783556113ac565b600083815260209020601f19861690835b828110156113835786850135825560209485019460019092019101611363565b50868210156113a05760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b8181038181111561026c5761026c61120a565b634e487b7160e01b600052603160045260246000fdfea264697066735822122037ed6dae341ef7b8610da3fa0c1f52aaeecf791d9ee2189dbb41bc03febb462f64736f6c63430008130033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100d05760003560e01c806301ffc9a7146100d55780631b95a227146100fd57806324d7806c146101125780632d3456701461012557806331ae450b146101385780635e6a6f8a1461014d5780636d73e66914610169578063715018a61461017c5780638da5cb5b146101845780639ca7dc7a14610199578063c70c875a146101ba578063d9accf92146101cd578063dc83b1b9146101ee578063e0df5b6f14610201578063e9dc637514610214578063f2fde38b14610234575b600080fd5b6100e86100e3366004610d72565b610247565b60405190151581526020015b60405180910390f35b61011061010b366004610dc6565b610272565b005b6100e8610120366004610dfb565b6103c1565b610110610133366004610dfb565b6103f0565b61014061044e565b6040516100f49190610e18565b6100e861015b366004610e65565b60035460ff16949350505050565b610110610177366004610dfb565b6104fc565b610110610554565b61018c610568565b6040516100f49190610eb6565b6101ac6101a7366004610eca565b610577565b6040516100f4929190610ef6565b6101106101c8366004610dfb565b6106bd565b6101106101db366004610f7a565b6003805460ff1916911515919091179055565b6101106101fc366004611069565b610730565b61011061020f366004611135565b61077f565b610227610222366004610eca565b610791565b6040516100f491906111a6565b610110610242366004610dfb565b610854565b60006001600160e01b0319821663e9dc637560e01b148061026c575061026c826108ca565b92915050565b3361027b610568565b6001600160a01b0316148061029657506102966001336108ef565b6102f35760405162461bcd60e51b8152602060048201526024808201527f41646d696e436f6e74726f6c3a204d757374206265206f776e6572206f7220616044820152633236b4b760e11b60648201526084015b60405180910390fd5b6103048263b5d2729f60e01b610914565b6103625760405162461bcd60e51b815260206004820152602960248201527f63726561746f72206d75737420696d706c656d656e74204945524337323143726044820152686561746f72436f726560b81b60648201526084016102ea565b604051635606467d60e11b815281151560048201526001600160a01b0383169063ac0c8cfa90602401600060405180830381600087803b1580156103a557600080fd5b505af11580156103b9573d6000803e3d6000fd5b505050505050565b6000816001600160a01b03166103d5610568565b6001600160a01b0316148061026c575061026c6001836108ef565b6103f8610930565b6104036001826108ef565b1561044b5760405133906001600160a01b038316907f7c0c3c84c67c85fcac635147348bfe374c24a1a93d0366d1cfe9d8853cbf89d590600090a361044960018261098f565b505b50565b606061045a60016109a4565b6001600160401b0381111561047157610471610f95565b60405190808252806020026020018201604052801561049a578160200160208202803683370190505b50905060005b6104aa60016109a4565b8110156104f8576104bc6001826109ae565b8282815181106104ce576104ce6111f4565b6001600160a01b0390921660209283029190910190910152806104f081611220565b9150506104a0565b5090565b610504610930565b61050f6001826108ef565b61044b5760405133906001600160a01b038316907f7e1a1a08d52e4ba0e21554733d66165fd5151f99460116223d9e3a608eec5cb190600090a36104496001826109ba565b61055c610930565b61056660006109cf565b565b6000546001600160a01b031690565b60055460609081906001600160a01b038581169116146105a95760405162461bcd60e51b81526004016102ea90611239565b6000838152600660205260409020541561069c57600083815260066020908152604080832081518154606094810282018501845292810183815290939192849284919084018282801561062557602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610607575b505050505081526020016001820180548060200260200160405190810160405280929190818152602001828054801561067d57602002820191906000526020600020905b815481526020019060010190808311610669575b50505050508152505090508060000151816020015192509250506106b6565b505060408051600080825260208201908152818301909252905b9250929050565b600554604051630525194b60e31b81526001600160a01b0390911690632928ca58906106ed908490600401610eb6565b6020604051808303816000875af115801561070c573d6000803e3d6000fd5b505050506040513d601f19601f82011682018060405250810190610449919061125a565b60408051808201825283815260208082018490526000868152600682529290922081518051929391926107669284920190610cc1565b5060208281015180516103b99260018501920190610d22565b600461078c8284836112f3565b505050565b6005546060906001600160a01b038481169116146107c15760405162461bcd60e51b81526004016102ea90611239565b600480546107ce90611273565b80601f01602080910402602001604051908101604052809291908181526020018280546107fa90611273565b80156108475780601f1061081c57610100808354040283529160200191610847565b820191906000526020600020905b81548152906001019060200180831161082a57829003601f168201915b5050505050905092915050565b61085c610930565b6001600160a01b0381166108c15760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016102ea565b61044b816109cf565b60006001600160e01b03198216634e53ee3d60e11b148061026c575061026c82610a1f565b6001600160a01b038116600090815260018301602052604081205415155b9392505050565b600061091f83610a44565b801561090d575061090d8383610a77565b33610939610568565b6001600160a01b0316146105665760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016102ea565b600061090d836001600160a01b038416610b00565b600061026c825490565b600061090d8383610bf3565b600061090d836001600160a01b038416610c1d565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b60006001600160e01b031982166345ffcdad60e01b148061026c575061026c82610c6c565b6000610a57826301ffc9a760e01b610a77565b801561026c5750610a70826001600160e01b0319610a77565b1592915050565b604080516001600160e01b03198316602480830191909152825180830390910181526044909101909152602080820180516001600160e01b03166301ffc9a760e01b178152825160009392849283928392918391908a617530fa92503d91506000519050828015610ae9575060208210155b8015610af55750600081115b979650505050505050565b60008181526001830160205260408120548015610be9576000610b246001836113b3565b8554909150600090610b38906001906113b3565b9050818114610b9d576000866000018281548110610b5857610b586111f4565b9060005260206000200154905080876000018481548110610b7b57610b7b6111f4565b6000918252602080832090910192909255918252600188019052604090208390555b8554869080610bae57610bae6113c6565b60019003818190600052602060002001600090559055856001016000868152602001908152602001600020600090556001935050505061026c565b600091505061026c565b6000826000018281548110610c0a57610c0a6111f4565b9060005260206000200154905092915050565b6000818152600183016020526040812054610c645750815460018181018455600084815260208082209093018490558454848252828601909352604090209190915561026c565b50600061026c565b60006001600160e01b03198216637005caad60e01b148061026c575061026c8260006001600160e01b03198216632a9f3abf60e11b148061026c57506301ffc9a760e01b6001600160e01b031983161461026c565b828054828255906000526020600020908101928215610d16579160200282015b82811115610d1657825182546001600160a01b0319166001600160a01b03909116178255602090920191600190910190610ce1565b506104f8929150610d5d565b828054828255906000526020600020908101928215610d16579160200282015b82811115610d16578251825591602001919060010190610d42565b5b808211156104f85760008155600101610d5e565b600060208284031215610d8457600080fd5b81356001600160e01b03198116811461090d57600080fd5b6001600160a01b038116811461044b57600080fd5b80358015158114610dc157600080fd5b919050565b60008060408385031215610dd957600080fd5b8235610de481610d9c565b9150610df260208401610db1565b90509250929050565b600060208284031215610e0d57600080fd5b813561090d81610d9c565b6020808252825182820181905260009190848201906040850190845b81811015610e595783516001600160a01b031683529284019291840191600101610e34565b50909695505050505050565b60008060008060808587031215610e7b57600080fd5b8435610e8681610d9c565b93506020850135610e9681610d9c565b92506040850135610ea681610d9c565b9396929550929360600135925050565b6001600160a01b0391909116815260200190565b60008060408385031215610edd57600080fd5b8235610ee881610d9c565b946020939093013593505050565b604080825283519082018190526000906020906060840190828701845b82811015610f385781516001600160a01b031684529284019290840190600101610f13565b5050508381038285015284518082528583019183019060005b81811015610f6d57835183529284019291840191600101610f51565b5090979650505050505050565b600060208284031215610f8c57600080fd5b61090d82610db1565b634e487b7160e01b600052604160045260246000fd5b604051601f8201601f191681016001600160401b0381118282101715610fd357610fd3610f95565b604052919050565b60006001600160401b03821115610ff457610ff4610f95565b5060051b60200190565b600082601f83011261100f57600080fd5b8135602061102461101f83610fdb565b610fab565b82815260059290921b8401810191818101908684111561104357600080fd5b8286015b8481101561105e5780358352918301918301611047565b509695505050505050565b60008060006060848603121561107e57600080fd5b833592506020808501356001600160401b038082111561109d57600080fd5b818701915087601f8301126110b157600080fd5b81356110bf61101f82610fdb565b81815260059190911b8301840190848101908a8311156110de57600080fd5b938501935b828510156111055784356110f681610d9c565b825293850193908501906110e3565b96505050604087013592508083111561111d57600080fd5b505061112b86828701610ffe565b9150509250925092565b6000806020838503121561114857600080fd5b82356001600160401b038082111561115f57600080fd5b818501915085601f83011261117357600080fd5b81358181111561118257600080fd5b86602082850101111561119457600080fd5b60209290920196919550909350505050565b600060208083528351808285015260005b818110156111d3578581018301518582016040015282016111b7565b506000604082860101526040601f19601f8301168501019250505092915050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b6000600182016112325761123261120a565b5060010190565b602080825260079082015266125b9d985b1a5960ca1b604082015260600190565b60006020828403121561126c57600080fd5b5051919050565b600181811c9082168061128757607f821691505b6020821081036112a757634e487b7160e01b600052602260045260246000fd5b50919050565b601f82111561078c57600081815260208120601f850160051c810160208610156112d45750805b601f850160051c820191505b818110156103b9578281556001016112e0565b6001600160401b0383111561130a5761130a610f95565b61131e836113188354611273565b836112ad565b6000601f841160018114611352576000851561133a5750838201355b600019600387901b1c1916600186901b1783556113ac565b600083815260209020601f19861690835b828110156113835786850135825560209485019460019092019101611363565b50868210156113a05760001960f88860031b161c19848701351681555b505060018560011b0183555b5050505050565b8181038181111561026c5761026c61120a565b634e487b7160e01b600052603160045260246000fdfea264697066735822122037ed6dae341ef7b8610da3fa0c1f52aaeecf791d9ee2189dbb41bc03febb462f64736f6c63430008130033",
  "immutableReferences": {},
  "generatedSources": [
    {
      "ast": {
        "nodeType": "YulBlock",
        "src": "0:306:81",
        "statements": [
          {
            "nodeType": "YulBlock",
            "src": "6:3:81",
            "statements": []
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "95:209:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "141:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "150:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "153:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "143:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "143:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "143:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "116:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "125:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "112:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "112:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "137:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "108:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "108:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "105:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "166:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "185:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "179:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "179:16:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "170:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "258:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "267:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "270:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "260:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "260:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "260:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "217:5:81"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "228:5:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "243:3:81",
                                        "type": "",
                                        "value": "160"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "248:1:81",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nodeType": "YulIdentifier",
                                      "src": "239:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "239:11:81"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "252:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "sub",
                                  "nodeType": "YulIdentifier",
                                  "src": "235:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "235:19:81"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "224:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "224:31:81"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "214:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "214:42:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "207:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "207:50:81"
                  },
                  "nodeType": "YulIf",
                  "src": "204:70:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "283:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "293:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "283:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_address_fromMemory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "61:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "72:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "84:6:81",
                "type": ""
              }
            ],
            "src": "14:290:81"
          }
        ]
      },
      "contents": "{\n    { }\n    function abi_decode_tuple_t_address_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := mload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n        value0 := value\n    }\n}",
      "id": 81,
      "language": "Yul",
      "name": "#utility.yul"
    }
  ],
  "deployedGeneratedSources": [
    {
      "ast": {
        "nodeType": "YulBlock",
        "src": "0:13706:81",
        "statements": [
          {
            "nodeType": "YulBlock",
            "src": "6:3:81",
            "statements": []
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "83:217:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "129:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "138:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "141:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "131:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "131:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "131:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "104:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "113:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "100:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "100:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "125:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "96:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "96:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "93:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "154:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "180:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "167:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "167:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "158:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "254:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "263:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "266:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "256:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "256:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "256:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "212:5:81"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "223:5:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "234:3:81",
                                    "type": "",
                                    "value": "224"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "239:10:81",
                                    "type": "",
                                    "value": "0xffffffff"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "230:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "230:20:81"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "219:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "219:32:81"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "209:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "209:43:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "202:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "202:51:81"
                  },
                  "nodeType": "YulIf",
                  "src": "199:71:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "279:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "289:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "279:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bytes4",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "49:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "60:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "72:6:81",
                "type": ""
              }
            ],
            "src": "14:286:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "400:92:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "410:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "422:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "433:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "418:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "418:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "410:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "452:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value0",
                                "nodeType": "YulIdentifier",
                                "src": "477:6:81"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nodeType": "YulIdentifier",
                              "src": "470:6:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "470:14:81"
                          }
                        ],
                        "functionName": {
                          "name": "iszero",
                          "nodeType": "YulIdentifier",
                          "src": "463:6:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "463:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "445:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "445:41:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "445:41:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "369:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "380:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "391:4:81",
                "type": ""
              }
            ],
            "src": "305:187:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "542:86:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "606:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "615:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "618:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "608:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "608:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "608:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "565:5:81"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "576:5:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "591:3:81",
                                        "type": "",
                                        "value": "160"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "596:1:81",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nodeType": "YulIdentifier",
                                      "src": "587:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "587:11:81"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "600:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "sub",
                                  "nodeType": "YulIdentifier",
                                  "src": "583:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "583:19:81"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "572:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "572:31:81"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "562:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "562:42:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "555:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "555:50:81"
                  },
                  "nodeType": "YulIf",
                  "src": "552:70:81"
                }
              ]
            },
            "name": "validator_revert_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "531:5:81",
                "type": ""
              }
            ],
            "src": "497:131:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "679:114:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "689:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "711:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "698:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "698:20:81"
                  },
                  "variableNames": [
                    {
                      "name": "value",
                      "nodeType": "YulIdentifier",
                      "src": "689:5:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "771:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "780:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "783:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "773:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "773:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "773:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "740:5:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "value",
                                    "nodeType": "YulIdentifier",
                                    "src": "761:5:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "iszero",
                                  "nodeType": "YulIdentifier",
                                  "src": "754:6:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "754:13:81"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nodeType": "YulIdentifier",
                              "src": "747:6:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "747:21:81"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "737:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "737:32:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "730:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "730:40:81"
                  },
                  "nodeType": "YulIf",
                  "src": "727:60:81"
                }
              ]
            },
            "name": "abi_decode_bool",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "658:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "669:5:81",
                "type": ""
              }
            ],
            "src": "633:160:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "882:231:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "928:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "937:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "940:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "930:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "930:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "930:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "903:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "912:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "899:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "899:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "924:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "895:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "895:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "892:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "953:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "979:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "966:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "966:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "957:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "1023:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "998:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "998:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "998:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1038:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "1048:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "1038:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1062:45:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "1092:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1103:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1088:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1088:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_bool",
                      "nodeType": "YulIdentifier",
                      "src": "1072:15:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1072:35:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "1062:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_bool",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "840:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "851:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "863:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "871:6:81",
                "type": ""
              }
            ],
            "src": "798:315:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1188:177:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1234:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1243:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1246:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "1236:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1236:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1236:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "1209:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "1218:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "1205:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1205:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1230:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "1201:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1201:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "1198:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1259:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1285:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "1272:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1272:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "1263:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "1329:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "1304:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1304:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1304:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1344:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "1354:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "1344:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "1154:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "1165:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "1177:6:81",
                "type": ""
              }
            ],
            "src": "1118:247:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1521:507:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1531:12:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "1541:2:81",
                    "type": "",
                    "value": "32"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "1535:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1552:32:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1570:9:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "1581:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "1566:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1566:18:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "1556:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1600:9:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "1611:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1593:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1593:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1593:21:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1623:17:81",
                  "value": {
                    "name": "tail_1",
                    "nodeType": "YulIdentifier",
                    "src": "1634:6:81"
                  },
                  "variables": [
                    {
                      "name": "pos",
                      "nodeType": "YulTypedName",
                      "src": "1627:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1649:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "1669:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "1663:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1663:13:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "1653:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "1692:6:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "1700:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1685:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1685:22:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1685:22:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1716:25:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1727:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1738:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "1723:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1723:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "1716:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1750:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "1768:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "1776:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "1764:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1764:15:81"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nodeType": "YulTypedName",
                      "src": "1754:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1788:10:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "1797:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "1792:1:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1856:146:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "1877:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "srcPtr",
                                      "nodeType": "YulIdentifier",
                                      "src": "1892:6:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "mload",
                                    "nodeType": "YulIdentifier",
                                    "src": "1886:5:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "1886:13:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "1909:3:81",
                                          "type": "",
                                          "value": "160"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "1914:1:81",
                                          "type": "",
                                          "value": "1"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "shl",
                                        "nodeType": "YulIdentifier",
                                        "src": "1905:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "1905:11:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "1918:1:81",
                                      "type": "",
                                      "value": "1"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "sub",
                                    "nodeType": "YulIdentifier",
                                    "src": "1901:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "1901:19:81"
                                }
                              ],
                              "functionName": {
                                "name": "and",
                                "nodeType": "YulIdentifier",
                                "src": "1882:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "1882:39:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "1870:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1870:52:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1870:52:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "1935:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "1946:3:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "1951:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "1942:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1942:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "1935:3:81"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "1967:25:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "1981:6:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "1989:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "1977:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1977:15:81"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nodeType": "YulIdentifier",
                            "src": "1967:6:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "1818:1:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "1821:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "1815:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1815:13:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "1829:18:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "1831:14:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "1840:1:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1843:1:81",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "1836:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1836:9:81"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "1831:1:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "1811:3:81",
                    "statements": []
                  },
                  "src": "1807:195:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2011:11:81",
                  "value": {
                    "name": "pos",
                    "nodeType": "YulIdentifier",
                    "src": "2019:3:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "2011: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": "1490:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "1501:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "1512:4:81",
                "type": ""
              }
            ],
            "src": "1370:658:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2154:477:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2201:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2210:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2213:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "2203:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2203:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2203:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "2175:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2184:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "2171:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2171:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2196:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "2167:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2167:33:81"
                  },
                  "nodeType": "YulIf",
                  "src": "2164:53:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2226:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2252:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "2239:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2239:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "2230:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "2296:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "2271:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2271:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2271:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2311:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "2321:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "2311:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2335:47:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2367:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "2378:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "2363:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2363:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "2350:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2350:32:81"
                  },
                  "variables": [
                    {
                      "name": "value_1",
                      "nodeType": "YulTypedName",
                      "src": "2339:7:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_1",
                        "nodeType": "YulIdentifier",
                        "src": "2416:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "2391:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2391:33:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2391:33:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2433:17:81",
                  "value": {
                    "name": "value_1",
                    "nodeType": "YulIdentifier",
                    "src": "2443:7:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "2433:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2459:47:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2491:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "2502:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "2487:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2487:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "2474:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2474:32:81"
                  },
                  "variables": [
                    {
                      "name": "value_2",
                      "nodeType": "YulTypedName",
                      "src": "2463:7:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value_2",
                        "nodeType": "YulIdentifier",
                        "src": "2540:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "2515:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2515:33:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2515:33:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2557:17:81",
                  "value": {
                    "name": "value_2",
                    "nodeType": "YulIdentifier",
                    "src": "2567:7:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "2557:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2583:42:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2610:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "2621:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "2606:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2606:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "2593:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2593:32:81"
                  },
                  "variableNames": [
                    {
                      "name": "value3",
                      "nodeType": "YulIdentifier",
                      "src": "2583:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_addresst_addresst_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "2096:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "2107:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "2119:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "2127:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "2135:6:81",
                "type": ""
              },
              {
                "name": "value3",
                "nodeType": "YulTypedName",
                "src": "2143:6:81",
                "type": ""
              }
            ],
            "src": "2033:598:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2737:102:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "2747:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2759:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2770:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "2755:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2755:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "2747:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2789:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "2804:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "2820:3:81",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "2825:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "2816:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "2816:11:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "2829:1:81",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "2812:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "2812:19:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "2800:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2800:32:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "2782:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2782:51:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2782:51:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "2706:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "2717:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "2728:4:81",
                "type": ""
              }
            ],
            "src": "2636:203:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2931:228:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2977:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2986:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2989:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "2979:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2979:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2979:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "2952:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2961:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "2948:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2948:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2973:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "2944:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2944:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "2941:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3002:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "3028:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "3015:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3015:23:81"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "3006:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "3072:5:81"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_address",
                      "nodeType": "YulIdentifier",
                      "src": "3047:24:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3047:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "3047:31:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3087:15:81",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "3097:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "3087:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3111:42:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3138:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3149:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3134:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3134:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "3121:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3121:32:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "3111:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "2889:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "2900:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "2912:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "2920:6:81",
                "type": ""
              }
            ],
            "src": "2844:315:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "3409:949:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3419:32:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "3437:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3448:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "3433:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3433:18:81"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "3423:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "3467:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3478:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "3460:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3460:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "3460:21:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3490:17:81",
                  "value": {
                    "name": "tail_1",
                    "nodeType": "YulIdentifier",
                    "src": "3501:6:81"
                  },
                  "variables": [
                    {
                      "name": "pos",
                      "nodeType": "YulTypedName",
                      "src": "3494:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3516:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "3536:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "3530:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3530:13:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "3520:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "3559:6:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "3567:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "3552:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3552:22:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "3552:22:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3583:25:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "3594:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3605:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "3590:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3590:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "3583:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3617:14:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "3627:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "3621:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3640:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "3658:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "3666:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "3654:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3654:15:81"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nodeType": "YulTypedName",
                      "src": "3644:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3678:10:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "3687:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "3682:1:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3746:146:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "3767:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "srcPtr",
                                      "nodeType": "YulIdentifier",
                                      "src": "3782:6:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "mload",
                                    "nodeType": "YulIdentifier",
                                    "src": "3776:5:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "3776:13:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "3799:3:81",
                                          "type": "",
                                          "value": "160"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "3804:1:81",
                                          "type": "",
                                          "value": "1"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "shl",
                                        "nodeType": "YulIdentifier",
                                        "src": "3795:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "3795:11:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "3808:1:81",
                                      "type": "",
                                      "value": "1"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "sub",
                                    "nodeType": "YulIdentifier",
                                    "src": "3791:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "3791:19:81"
                                }
                              ],
                              "functionName": {
                                "name": "and",
                                "nodeType": "YulIdentifier",
                                "src": "3772:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "3772:39:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "3760:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3760:52:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3760:52:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "3825:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "3836:3:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "3841:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "3832:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3832:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "3825:3:81"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "3857:25:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "3871:6:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "3879:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "3867:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3867:15:81"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nodeType": "YulIdentifier",
                            "src": "3857:6:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "3708:1:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "3711:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "3705:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3705:13:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "3719:18:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "3721:14:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "3730:1:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3733:1:81",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "3726:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3726:9:81"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "3721:1:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "3701:3:81",
                    "statements": []
                  },
                  "src": "3697:195:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3912:9:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "3923:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3908:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3908:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "3932:3:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3937:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "3928:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3928:19:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "3901:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3901:47:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "3901:47:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3957:16:81",
                  "value": {
                    "name": "pos",
                    "nodeType": "YulIdentifier",
                    "src": "3970:3:81"
                  },
                  "variables": [
                    {
                      "name": "pos_1",
                      "nodeType": "YulTypedName",
                      "src": "3961:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3982:29:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "4004:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "3998:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3998:13:81"
                  },
                  "variables": [
                    {
                      "name": "length_1",
                      "nodeType": "YulTypedName",
                      "src": "3986:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "4027:3:81"
                      },
                      {
                        "name": "length_1",
                        "nodeType": "YulIdentifier",
                        "src": "4032:8:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "4020:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4020:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4020:21:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4050:21:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "4063:3:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "4068:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "4059:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4059:12:81"
                  },
                  "variableNames": [
                    {
                      "name": "pos_1",
                      "nodeType": "YulIdentifier",
                      "src": "4050:5:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4080:31:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "4100:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "4108:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "4096:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4096:15:81"
                  },
                  "variables": [
                    {
                      "name": "srcPtr_1",
                      "nodeType": "YulTypedName",
                      "src": "4084:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4120:12:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "4131:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i_1",
                      "nodeType": "YulTypedName",
                      "src": "4124:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4198:132:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos_1",
                              "nodeType": "YulIdentifier",
                              "src": "4219:5:81"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "srcPtr_1",
                                  "nodeType": "YulIdentifier",
                                  "src": "4232:8:81"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nodeType": "YulIdentifier",
                                "src": "4226:5:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "4226:15:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "4212:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4212:30:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4212:30:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "4255:23:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos_1",
                              "nodeType": "YulIdentifier",
                              "src": "4268:5:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "4275:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "4264:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4264:14:81"
                        },
                        "variableNames": [
                          {
                            "name": "pos_1",
                            "nodeType": "YulIdentifier",
                            "src": "4255:5:81"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "4291:29:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr_1",
                              "nodeType": "YulIdentifier",
                              "src": "4307:8:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "4317:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "4303:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4303:17:81"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr_1",
                            "nodeType": "YulIdentifier",
                            "src": "4291:8:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i_1",
                        "nodeType": "YulIdentifier",
                        "src": "4152:3:81"
                      },
                      {
                        "name": "length_1",
                        "nodeType": "YulIdentifier",
                        "src": "4157:8:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "4149:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4149:17:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "4167:22:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "4169:18:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i_1",
                              "nodeType": "YulIdentifier",
                              "src": "4180:3:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4185:1:81",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "4176:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4176:11:81"
                        },
                        "variableNames": [
                          {
                            "name": "i_1",
                            "nodeType": "YulIdentifier",
                            "src": "4169:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "4145:3:81",
                    "statements": []
                  },
                  "src": "4141:189:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4339:13:81",
                  "value": {
                    "name": "pos_1",
                    "nodeType": "YulIdentifier",
                    "src": "4347:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "4339: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": "3370:9:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "3381:6:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "3389:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "3400:4:81",
                "type": ""
              }
            ],
            "src": "3164:1194:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "4430:113:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4476:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4485:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4488:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "4478:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4478:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4478:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "4451:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4460:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "4447:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4447:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4472:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "4443:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4443:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "4440:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4501:36:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "4527:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_bool",
                      "nodeType": "YulIdentifier",
                      "src": "4511:15:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4511:26:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "4501:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_bool",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "4396:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "4407:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "4419:6:81",
                "type": ""
              }
            ],
            "src": "4363:180:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "4580:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4597:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4604:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4609:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "4600:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4600:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "4590:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4590:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4590:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4637:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4640:4:81",
                        "type": "",
                        "value": "0x41"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "4630:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4630:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4630:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4661:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4664:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "4654:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4654:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4654:15:81"
                }
              ]
            },
            "name": "panic_error_0x41",
            "nodeType": "YulFunctionDefinition",
            "src": "4548:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "4725:230:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "4735:19:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4751:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "4745:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4745:9:81"
                  },
                  "variableNames": [
                    {
                      "name": "memPtr",
                      "nodeType": "YulIdentifier",
                      "src": "4735:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4763:58:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "memPtr",
                        "nodeType": "YulIdentifier",
                        "src": "4785:6:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "size",
                                "nodeType": "YulIdentifier",
                                "src": "4801:4:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "4807:2:81",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "4797:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "4797:13:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "4816:2:81",
                                "type": "",
                                "value": "31"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nodeType": "YulIdentifier",
                              "src": "4812:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "4812:7:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "4793:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4793:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "4781:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4781:40:81"
                  },
                  "variables": [
                    {
                      "name": "newFreePtr",
                      "nodeType": "YulTypedName",
                      "src": "4767:10:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4896:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "4898:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4898:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4898:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nodeType": "YulIdentifier",
                            "src": "4839:10:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4851:18:81",
                            "type": "",
                            "value": "0xffffffffffffffff"
                          }
                        ],
                        "functionName": {
                          "name": "gt",
                          "nodeType": "YulIdentifier",
                          "src": "4836:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4836:34:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "newFreePtr",
                            "nodeType": "YulIdentifier",
                            "src": "4875:10:81"
                          },
                          {
                            "name": "memPtr",
                            "nodeType": "YulIdentifier",
                            "src": "4887:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nodeType": "YulIdentifier",
                          "src": "4872:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4872:22:81"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nodeType": "YulIdentifier",
                      "src": "4833:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4833:62:81"
                  },
                  "nodeType": "YulIf",
                  "src": "4830:88:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4934:2:81",
                        "type": "",
                        "value": "64"
                      },
                      {
                        "name": "newFreePtr",
                        "nodeType": "YulIdentifier",
                        "src": "4938:10:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "4927:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4927:22:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4927:22:81"
                }
              ]
            },
            "name": "allocate_memory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "size",
                "nodeType": "YulTypedName",
                "src": "4705:4:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "memPtr",
                "nodeType": "YulTypedName",
                "src": "4714:6:81",
                "type": ""
              }
            ],
            "src": "4680:275:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5037:114:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "5081:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "5083:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5083:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5083:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "5053:6:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5061:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "5050:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5050:30:81"
                  },
                  "nodeType": "YulIf",
                  "src": "5047:56:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5112:33:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5128:1:81",
                            "type": "",
                            "value": "5"
                          },
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "5131:6:81"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "5124:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5124:14:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5140:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "5120:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5120:25:81"
                  },
                  "variableNames": [
                    {
                      "name": "size",
                      "nodeType": "YulIdentifier",
                      "src": "5112:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "array_allocation_size_array_address_payable_dyn",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "5017:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "size",
                "nodeType": "YulTypedName",
                "src": "5028:4:81",
                "type": ""
              }
            ],
            "src": "4960:191:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5220:606:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "5269:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5278:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5281:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "5271:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5271:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5271:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "offset",
                                "nodeType": "YulIdentifier",
                                "src": "5248:6:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "5256:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "5244:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "5244:17:81"
                          },
                          {
                            "name": "end",
                            "nodeType": "YulIdentifier",
                            "src": "5263:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "5240:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5240:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "5233:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5233:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "5230:55:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "5294:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "5317:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "5304:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5304:20:81"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "5298:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "5333:14:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "5343:4:81",
                    "type": "",
                    "value": "0x20"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "5337:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "5356:79:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "5431:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "array_allocation_size_array_address_payable_dyn",
                          "nodeType": "YulIdentifier",
                          "src": "5383:47:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5383:51:81"
                      }
                    ],
                    "functionName": {
                      "name": "allocate_memory",
                      "nodeType": "YulIdentifier",
                      "src": "5367:15:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5367:68:81"
                  },
                  "variables": [
                    {
                      "name": "dst",
                      "nodeType": "YulTypedName",
                      "src": "5360:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "5444:16:81",
                  "value": {
                    "name": "dst",
                    "nodeType": "YulIdentifier",
                    "src": "5457:3:81"
                  },
                  "variables": [
                    {
                      "name": "dst_1",
                      "nodeType": "YulTypedName",
                      "src": "5448:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "dst",
                        "nodeType": "YulIdentifier",
                        "src": "5476:3:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "5481:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5469:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5469:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5469:15:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5493:19:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "dst",
                        "nodeType": "YulIdentifier",
                        "src": "5504:3:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "5509:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "5500:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5500:12:81"
                  },
                  "variableNames": [
                    {
                      "name": "dst",
                      "nodeType": "YulIdentifier",
                      "src": "5493:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "5521:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "5543:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "5555:1:81",
                                "type": "",
                                "value": "5"
                              },
                              {
                                "name": "_1",
                                "nodeType": "YulIdentifier",
                                "src": "5558:2:81"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "5551:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "5551:10:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5539:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5539:23:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "5564:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "5535:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5535:32:81"
                  },
                  "variables": [
                    {
                      "name": "srcEnd",
                      "nodeType": "YulTypedName",
                      "src": "5525:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "5595:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5604:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "5607:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "5597:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5597:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5597:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "5582:6:81"
                      },
                      {
                        "name": "end",
                        "nodeType": "YulIdentifier",
                        "src": "5590:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "5579:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5579:15:81"
                  },
                  "nodeType": "YulIf",
                  "src": "5576:35:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "5620:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "5635:6:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "5643:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "5631:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5631:15:81"
                  },
                  "variables": [
                    {
                      "name": "src",
                      "nodeType": "YulTypedName",
                      "src": "5624:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "5711:86:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "5732:3:81"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "src",
                                  "nodeType": "YulIdentifier",
                                  "src": "5750:3:81"
                                }
                              ],
                              "functionName": {
                                "name": "calldataload",
                                "nodeType": "YulIdentifier",
                                "src": "5737:12:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "5737:17:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "5725:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5725:30:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5725:30:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "5768:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "5779:3:81"
                            },
                            {
                              "name": "_2",
                              "nodeType": "YulIdentifier",
                              "src": "5784:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "5775:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5775:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "dst",
                            "nodeType": "YulIdentifier",
                            "src": "5768:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "src",
                        "nodeType": "YulIdentifier",
                        "src": "5666:3:81"
                      },
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "5671:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "5663:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5663:15:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "5679:23:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "5681:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "src",
                              "nodeType": "YulIdentifier",
                              "src": "5692:3:81"
                            },
                            {
                              "name": "_2",
                              "nodeType": "YulIdentifier",
                              "src": "5697:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "5688:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5688:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "src",
                            "nodeType": "YulIdentifier",
                            "src": "5681:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "5659:3:81",
                    "statements": []
                  },
                  "src": "5655:142:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5806:14:81",
                  "value": {
                    "name": "dst_1",
                    "nodeType": "YulIdentifier",
                    "src": "5815:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "array",
                      "nodeType": "YulIdentifier",
                      "src": "5806:5:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_array_uint256_dyn",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "offset",
                "nodeType": "YulTypedName",
                "src": "5194:6:81",
                "type": ""
              },
              {
                "name": "end",
                "nodeType": "YulTypedName",
                "src": "5202:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "array",
                "nodeType": "YulTypedName",
                "src": "5210:5:81",
                "type": ""
              }
            ],
            "src": "5156:670:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5993:1135:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "6039:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6048:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6051:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "6041:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6041:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6041:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "6014:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "6023:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "6010:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6010:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6035:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "6006:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6006:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "6003:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "6064:33:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "6087:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "6074:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6074:23:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "6064:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6106:12:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "6116:2:81",
                    "type": "",
                    "value": "32"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "6110:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6127:46:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "6158:9:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "6169:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "6154:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6154:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "6141:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6141:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "6131:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6182:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "6192:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "6186:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "6237:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6246:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6249:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "6239:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6239:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6239:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "6225:6:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "6233:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "6222:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6222:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "6219:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6262:32:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "6276:9:81"
                      },
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "6287:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "6272:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6272:22:81"
                  },
                  "variables": [
                    {
                      "name": "_3",
                      "nodeType": "YulTypedName",
                      "src": "6266:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "6342:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6351:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6354:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "6344:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6344:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6344:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_3",
                                "nodeType": "YulIdentifier",
                                "src": "6321:2:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "6325:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "6317:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "6317:13:81"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "6332:7:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "6313:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6313:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "6306:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6306:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "6303:55:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6367:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "6390:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "6377:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6377:16:81"
                  },
                  "variables": [
                    {
                      "name": "_4",
                      "nodeType": "YulTypedName",
                      "src": "6371:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6402:79:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_4",
                            "nodeType": "YulIdentifier",
                            "src": "6477:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "array_allocation_size_array_address_payable_dyn",
                          "nodeType": "YulIdentifier",
                          "src": "6429:47:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6429:51:81"
                      }
                    ],
                    "functionName": {
                      "name": "allocate_memory",
                      "nodeType": "YulIdentifier",
                      "src": "6413:15:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6413:68:81"
                  },
                  "variables": [
                    {
                      "name": "dst",
                      "nodeType": "YulTypedName",
                      "src": "6406:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6490:16:81",
                  "value": {
                    "name": "dst",
                    "nodeType": "YulIdentifier",
                    "src": "6503:3:81"
                  },
                  "variables": [
                    {
                      "name": "dst_1",
                      "nodeType": "YulTypedName",
                      "src": "6494:5:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "dst",
                        "nodeType": "YulIdentifier",
                        "src": "6522:3:81"
                      },
                      {
                        "name": "_4",
                        "nodeType": "YulIdentifier",
                        "src": "6527:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "6515:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6515:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "6515:15:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "6539:19:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "dst",
                        "nodeType": "YulIdentifier",
                        "src": "6550:3:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "6555:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "6546:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6546:12:81"
                  },
                  "variableNames": [
                    {
                      "name": "dst",
                      "nodeType": "YulIdentifier",
                      "src": "6539:3:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6567:42:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "_3",
                            "nodeType": "YulIdentifier",
                            "src": "6589:2:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "6597:1:81",
                                "type": "",
                                "value": "5"
                              },
                              {
                                "name": "_4",
                                "nodeType": "YulIdentifier",
                                "src": "6600:2:81"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "6593:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "6593:10:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "6585:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6585:19:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "6606:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "6581:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6581:28:81"
                  },
                  "variables": [
                    {
                      "name": "srcEnd",
                      "nodeType": "YulTypedName",
                      "src": "6571:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "6641:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6650:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "6653:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "6643:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6643:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6643:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "6624:6:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "6632:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "6621:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6621:19:81"
                  },
                  "nodeType": "YulIf",
                  "src": "6618:39:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6666:22:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_3",
                        "nodeType": "YulIdentifier",
                        "src": "6681:2:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "6685:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "6677:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6677:11:81"
                  },
                  "variables": [
                    {
                      "name": "src",
                      "nodeType": "YulTypedName",
                      "src": "6670:3:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "6753:161:81",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "6767:30:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "src",
                              "nodeType": "YulIdentifier",
                              "src": "6793:3:81"
                            }
                          ],
                          "functionName": {
                            "name": "calldataload",
                            "nodeType": "YulIdentifier",
                            "src": "6780:12:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6780:17:81"
                        },
                        "variables": [
                          {
                            "name": "value",
                            "nodeType": "YulTypedName",
                            "src": "6771:5:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "value",
                              "nodeType": "YulIdentifier",
                              "src": "6835:5:81"
                            }
                          ],
                          "functionName": {
                            "name": "validator_revert_address",
                            "nodeType": "YulIdentifier",
                            "src": "6810:24:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6810:31:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6810:31:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "6861:3:81"
                            },
                            {
                              "name": "value",
                              "nodeType": "YulIdentifier",
                              "src": "6866:5:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "6854:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6854:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "6854:18:81"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "6885:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "dst",
                              "nodeType": "YulIdentifier",
                              "src": "6896:3:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "6901:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "6892:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6892:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "dst",
                            "nodeType": "YulIdentifier",
                            "src": "6885:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "src",
                        "nodeType": "YulIdentifier",
                        "src": "6708:3:81"
                      },
                      {
                        "name": "srcEnd",
                        "nodeType": "YulIdentifier",
                        "src": "6713:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "6705:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6705:15:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "6721:23:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "6723:19:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "src",
                              "nodeType": "YulIdentifier",
                              "src": "6734:3:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "6739:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "6730:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "6730:12:81"
                        },
                        "variableNames": [
                          {
                            "name": "src",
                            "nodeType": "YulIdentifier",
                            "src": "6723:3:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "6701:3:81",
                    "statements": []
                  },
                  "src": "6697:217:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "6923:15:81",
                  "value": {
                    "name": "dst_1",
                    "nodeType": "YulIdentifier",
                    "src": "6933:5:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "6923:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "6947:48:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "6980:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "6991:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "6976:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6976:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "6963:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6963:32:81"
                  },
                  "variables": [
                    {
                      "name": "offset_1",
                      "nodeType": "YulTypedName",
                      "src": "6951:8:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7024:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7033:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7036:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "7026:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7026:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7026:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset_1",
                        "nodeType": "YulIdentifier",
                        "src": "7010:8:81"
                      },
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "7020:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "7007:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7007:16:81"
                  },
                  "nodeType": "YulIf",
                  "src": "7004:36:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "7049:73:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "7092:9:81"
                          },
                          {
                            "name": "offset_1",
                            "nodeType": "YulIdentifier",
                            "src": "7103:8:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "7088:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7088:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "7114:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "abi_decode_array_uint256_dyn",
                      "nodeType": "YulIdentifier",
                      "src": "7059:28:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7059:63:81"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "7049:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint256t_array$_t_address_payable_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "5943:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "5954:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "5966:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "5974:6:81",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "5982:6:81",
                "type": ""
              }
            ],
            "src": "5831:1297:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "7223:502:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7269:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7278:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7281:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "7271:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7271:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7271:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "7244:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "7253:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "7240:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7240:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "7265:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "7236:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7236:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "7233:52:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7294:37:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "7321:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "7308:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7308:23:81"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "7298:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7340:28:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "7350:18:81",
                    "type": "",
                    "value": "0xffffffffffffffff"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "7344:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7395:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7404:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7407:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "7397:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7397:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7397:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "7383:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "7391:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "7380:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7380:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "7377:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7420:32:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "7434:9:81"
                      },
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "7445:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "7430:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7430:22:81"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "7424:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7500:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7509:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7512:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "7502:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7502:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7502:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_2",
                                "nodeType": "YulIdentifier",
                                "src": "7479:2:81"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "7483:4:81",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "7475:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "7475:13:81"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "7490:7:81"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "7471:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7471:27:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "7464:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7464:35:81"
                  },
                  "nodeType": "YulIf",
                  "src": "7461:55:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7525:30:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "7552:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "7539:12:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7539:16:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "7529:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7582:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7591:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7594:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "7584:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7584:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7584:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "7570:6:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "7578:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "7567:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7567:14:81"
                  },
                  "nodeType": "YulIf",
                  "src": "7564:34:81"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "7648:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7657:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "7660:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "7650:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "7650:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "7650:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_2",
                                "nodeType": "YulIdentifier",
                                "src": "7621:2:81"
                              },
                              {
                                "name": "length",
                                "nodeType": "YulIdentifier",
                                "src": "7625:6:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "7617:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "7617:15:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "7634:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "7613:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7613:24:81"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "7639:7:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "7610:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7610:37:81"
                  },
                  "nodeType": "YulIf",
                  "src": "7607:57:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "7673:21:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "7687:2:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "7691:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "7683:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7683:11:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "7673:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "7703:16:81",
                  "value": {
                    "name": "length",
                    "nodeType": "YulIdentifier",
                    "src": "7713:6:81"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "7703:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_string_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "7181:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "7192:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "7204:6:81",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "7212:6:81",
                "type": ""
              }
            ],
            "src": "7133:592:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "7851:427:81",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7861:12:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "7871:2:81",
                    "type": "",
                    "value": "32"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "7865:2:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "7889:9:81"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "7900:2:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "7882:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7882:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "7882:21:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7912:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "7932:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "7926:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7926:13:81"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "7916:6:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "7959:9:81"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "7970:2:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "7955:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "7955:18:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "7975:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "7948:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "7948:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "7948:34:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "7991:10:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "8000:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "7995:1:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "8060:90:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "headStart",
                                      "nodeType": "YulIdentifier",
                                      "src": "8089:9:81"
                                    },
                                    {
                                      "name": "i",
                                      "nodeType": "YulIdentifier",
                                      "src": "8100:1:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "8085:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "8085:17:81"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "8104:2:81",
                                  "type": "",
                                  "value": "64"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "8081:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "8081:26:81"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "name": "value0",
                                          "nodeType": "YulIdentifier",
                                          "src": "8123:6:81"
                                        },
                                        {
                                          "name": "i",
                                          "nodeType": "YulIdentifier",
                                          "src": "8131:1:81"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "add",
                                        "nodeType": "YulIdentifier",
                                        "src": "8119:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "8119:14:81"
                                    },
                                    {
                                      "name": "_1",
                                      "nodeType": "YulIdentifier",
                                      "src": "8135:2:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "8115:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "8115:23:81"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nodeType": "YulIdentifier",
                                "src": "8109:5:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "8109:30:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "8074:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8074:66:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "8074:66:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "8021:1:81"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "8024:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "8018:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8018:13:81"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "8032:19:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "8034:15:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "8043:1:81"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "8046:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "8039:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "8039:10:81"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "8034:1:81"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "8014:3:81",
                    "statements": []
                  },
                  "src": "8010:140:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "8174:9:81"
                              },
                              {
                                "name": "length",
                                "nodeType": "YulIdentifier",
                                "src": "8185:6:81"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "8170:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "8170:22:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "8194:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8166:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8166:31:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "8199:1:81",
                        "type": "",
                        "value": "0"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "8159:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8159:42:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "8159:42:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8210:62:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8226:9:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "length",
                                    "nodeType": "YulIdentifier",
                                    "src": "8245:6:81"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "8253:2:81",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nodeType": "YulIdentifier",
                                  "src": "8241:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "8241:15:81"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "8262:2:81",
                                    "type": "",
                                    "value": "31"
                                  }
                                ],
                                "functionName": {
                                  "name": "not",
                                  "nodeType": "YulIdentifier",
                                  "src": "8258:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "8258:7:81"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "8237:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "8237:29:81"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8222:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8222:45:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "8269:2:81",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "8218:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8218:54:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "8210: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": "7820:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "7831:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "7842:4:81",
                "type": ""
              }
            ],
            "src": "7730:548:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "8457:226:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "8474:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "8485:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "8467:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8467:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "8467:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8508:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "8519:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8504:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8504:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "8524:2:81",
                        "type": "",
                        "value": "36"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "8497:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8497:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "8497:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8547:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "8558:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8543:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8543:18:81"
                      },
                      {
                        "hexValue": "41646d696e436f6e74726f6c3a204d757374206265206f776e6572206f722061",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "8563:34:81",
                        "type": "",
                        "value": "AdminControl: Must be owner or a"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "8536:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8536:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "8536:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8618:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "8629:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8614:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8614:18:81"
                      },
                      {
                        "hexValue": "646d696e",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "8634:6:81",
                        "type": "",
                        "value": "dmin"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "8607:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8607:34:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "8607:34:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "8650:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "8662:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "8673:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "8658:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8658:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "8650:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_ca6fc84f9a44d1110756284e5c56ff72cff80e2de6c9cfbe8379a88afa111687__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "8434:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "8448:4:81",
                "type": ""
              }
            ],
            "src": "8283:400:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "8862:231:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "8879:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "8890:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "8872:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8872:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "8872:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8913:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "8924:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8909:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8909:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "8929:2:81",
                        "type": "",
                        "value": "41"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "8902:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8902:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "8902:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "8952:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "8963:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "8948:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "8948:18:81"
                      },
                      {
                        "hexValue": "63726561746f72206d75737420696d706c656d656e7420494552433732314372",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "8968:34:81",
                        "type": "",
                        "value": "creator must implement IERC721Cr"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "8941:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "8941:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "8941:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9023:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "9034:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "9019:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9019:18:81"
                      },
                      {
                        "hexValue": "6561746f72436f7265",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "9039:11:81",
                        "type": "",
                        "value": "eatorCore"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "9012:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9012:39:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "9012:39:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9060:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "9072:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9083:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "9068:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9068:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "9060:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_6ce3e2a1d39a1e733326d9ad19a368bd3d0a0e54a77ac125270b9710bcd4d67f__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "8839:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "8853:4:81",
                "type": ""
              }
            ],
            "src": "8688:405:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "9130:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9147:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "9154:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "9159:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "9150:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9150:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "9140:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9140:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "9140:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9187:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9190:4:81",
                        "type": "",
                        "value": "0x32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "9180:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9180:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "9180:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9211:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9214:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "9204:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9204:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "9204:15:81"
                }
              ]
            },
            "name": "panic_error_0x32",
            "nodeType": "YulFunctionDefinition",
            "src": "9098:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "9262:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9279:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "9286:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "9291:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "9282:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9282:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "9272:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9272:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "9272:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9319:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9322:4:81",
                        "type": "",
                        "value": "0x11"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "9312:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9312:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "9312:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9343:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9346:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "9336:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9336:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "9336:15:81"
                }
              ]
            },
            "name": "panic_error_0x11",
            "nodeType": "YulFunctionDefinition",
            "src": "9230:127:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "9409:88:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "9440:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "9442:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "9442:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "9442:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "9425:5:81"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "9436:1:81",
                            "type": "",
                            "value": "0"
                          }
                        ],
                        "functionName": {
                          "name": "not",
                          "nodeType": "YulIdentifier",
                          "src": "9432:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9432:6:81"
                      }
                    ],
                    "functionName": {
                      "name": "eq",
                      "nodeType": "YulIdentifier",
                      "src": "9422:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9422:17:81"
                  },
                  "nodeType": "YulIf",
                  "src": "9419:43:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9471:20:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "9482:5:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9489:1:81",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "9478:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9478:13:81"
                  },
                  "variableNames": [
                    {
                      "name": "ret",
                      "nodeType": "YulIdentifier",
                      "src": "9471:3:81"
                    }
                  ]
                }
              ]
            },
            "name": "increment_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "9391:5:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "ret",
                "nodeType": "YulTypedName",
                "src": "9401:3:81",
                "type": ""
              }
            ],
            "src": "9362:135:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "9676:156:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "9693:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9704:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "9686:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9686:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "9686:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9727:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "9738:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "9723:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9723:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9743:1:81",
                        "type": "",
                        "value": "7"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "9716:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9716:29:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "9716:29:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9765:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "9776:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "9761:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9761:18:81"
                      },
                      {
                        "hexValue": "496e76616c6964",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "9781:9:81",
                        "type": "",
                        "value": "Invalid"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "9754:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9754:37:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "9754:37:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9800:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "9812:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9823:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "9808:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9808:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "9800:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_c84d91f537f720db0d8ff8472db06e97a59d22ac83366d0af861134338d0e345__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "9653:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "9667:4:81",
                "type": ""
              }
            ],
            "src": "9502:330:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "9918:103:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "9964:16:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9973:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "9976:1:81",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "9966:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "9966:12:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "9966:12:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "9939:7:81"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "9948:9:81"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "9935:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "9935:23:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "9960:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "9931:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9931:32:81"
                  },
                  "nodeType": "YulIf",
                  "src": "9928:52:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "9989:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "10005:9:81"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "9999:5:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "9999:16:81"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "9989:6:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint256_fromMemory",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "9884:9:81",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "9895:7:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "9907:6:81",
                "type": ""
              }
            ],
            "src": "9837:184:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "10081:325:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "10091:22:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10105:1:81",
                        "type": "",
                        "value": "1"
                      },
                      {
                        "name": "data",
                        "nodeType": "YulIdentifier",
                        "src": "10108:4:81"
                      }
                    ],
                    "functionName": {
                      "name": "shr",
                      "nodeType": "YulIdentifier",
                      "src": "10101:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10101:12:81"
                  },
                  "variableNames": [
                    {
                      "name": "length",
                      "nodeType": "YulIdentifier",
                      "src": "10091:6:81"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "10122:38:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "data",
                        "nodeType": "YulIdentifier",
                        "src": "10152:4:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10158:1:81",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "and",
                      "nodeType": "YulIdentifier",
                      "src": "10148:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10148:12:81"
                  },
                  "variables": [
                    {
                      "name": "outOfPlaceEncoding",
                      "nodeType": "YulTypedName",
                      "src": "10126:18:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "10199:31:81",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "10201:27:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "length",
                              "nodeType": "YulIdentifier",
                              "src": "10215:6:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "10223:4:81",
                              "type": "",
                              "value": "0x7f"
                            }
                          ],
                          "functionName": {
                            "name": "and",
                            "nodeType": "YulIdentifier",
                            "src": "10211:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10211:17:81"
                        },
                        "variableNames": [
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "10201:6:81"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "outOfPlaceEncoding",
                        "nodeType": "YulIdentifier",
                        "src": "10179:18:81"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "10172:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10172:26:81"
                  },
                  "nodeType": "YulIf",
                  "src": "10169:61:81"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "10289:111:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "10310:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "10317:3:81",
                                  "type": "",
                                  "value": "224"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "10322:10:81",
                                  "type": "",
                                  "value": "0x4e487b71"
                                }
                              ],
                              "functionName": {
                                "name": "shl",
                                "nodeType": "YulIdentifier",
                                "src": "10313:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "10313:20:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "10303:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10303:31:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "10303:31:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "10354:1:81",
                              "type": "",
                              "value": "4"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "10357:4:81",
                              "type": "",
                              "value": "0x22"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "10347:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10347:15:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "10347:15:81"
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "10382:1:81",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "10385:4:81",
                              "type": "",
                              "value": "0x24"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "10375:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10375:15:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "10375:15:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "outOfPlaceEncoding",
                        "nodeType": "YulIdentifier",
                        "src": "10245:18:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "10268:6:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "10276:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nodeType": "YulIdentifier",
                          "src": "10265:2:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "10265:14:81"
                      }
                    ],
                    "functionName": {
                      "name": "eq",
                      "nodeType": "YulIdentifier",
                      "src": "10242:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10242:38:81"
                  },
                  "nodeType": "YulIf",
                  "src": "10239:161:81"
                }
              ]
            },
            "name": "extract_byte_array_length",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "data",
                "nodeType": "YulTypedName",
                "src": "10061:4:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "length",
                "nodeType": "YulTypedName",
                "src": "10070:6:81",
                "type": ""
              }
            ],
            "src": "10026:380:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "10467:65:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10484:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "name": "ptr",
                        "nodeType": "YulIdentifier",
                        "src": "10487:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "10477:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10477:14:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "10477:14:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "10500:26:81",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10518:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10521:4:81",
                        "type": "",
                        "value": "0x20"
                      }
                    ],
                    "functionName": {
                      "name": "keccak256",
                      "nodeType": "YulIdentifier",
                      "src": "10508:9:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10508:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "data",
                      "nodeType": "YulIdentifier",
                      "src": "10500:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "array_dataslot_string_storage",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "ptr",
                "nodeType": "YulTypedName",
                "src": "10450:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "data",
                "nodeType": "YulTypedName",
                "src": "10458:4:81",
                "type": ""
              }
            ],
            "src": "10411:121:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "10618:464:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "10651:425:81",
                    "statements": [
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "10665:11:81",
                        "value": {
                          "kind": "number",
                          "nodeType": "YulLiteral",
                          "src": "10675:1:81",
                          "type": "",
                          "value": "0"
                        },
                        "variables": [
                          {
                            "name": "_1",
                            "nodeType": "YulTypedName",
                            "src": "10669:2:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "10696:2:81"
                            },
                            {
                              "name": "array",
                              "nodeType": "YulIdentifier",
                              "src": "10700:5:81"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "10689:6:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10689:17:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "10689:17:81"
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "10719:31:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "10741:2:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "10745:4:81",
                              "type": "",
                              "value": "0x20"
                            }
                          ],
                          "functionName": {
                            "name": "keccak256",
                            "nodeType": "YulIdentifier",
                            "src": "10731:9:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10731:19:81"
                        },
                        "variables": [
                          {
                            "name": "data",
                            "nodeType": "YulTypedName",
                            "src": "10723:4:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "10763:57:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "data",
                              "nodeType": "YulIdentifier",
                              "src": "10786:4:81"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "10796:1:81",
                                  "type": "",
                                  "value": "5"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "startIndex",
                                      "nodeType": "YulIdentifier",
                                      "src": "10803:10:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "10815:2:81",
                                      "type": "",
                                      "value": "31"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "10799:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "10799:19:81"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nodeType": "YulIdentifier",
                                "src": "10792:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "10792:27:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "10782:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10782:38:81"
                        },
                        "variables": [
                          {
                            "name": "deleteStart",
                            "nodeType": "YulTypedName",
                            "src": "10767:11:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "10857:23:81",
                          "statements": [
                            {
                              "nodeType": "YulAssignment",
                              "src": "10859:19:81",
                              "value": {
                                "name": "data",
                                "nodeType": "YulIdentifier",
                                "src": "10874:4:81"
                              },
                              "variableNames": [
                                {
                                  "name": "deleteStart",
                                  "nodeType": "YulIdentifier",
                                  "src": "10859:11:81"
                                }
                              ]
                            }
                          ]
                        },
                        "condition": {
                          "arguments": [
                            {
                              "name": "startIndex",
                              "nodeType": "YulIdentifier",
                              "src": "10839:10:81"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "10851:4:81",
                              "type": "",
                              "value": "0x20"
                            }
                          ],
                          "functionName": {
                            "name": "lt",
                            "nodeType": "YulIdentifier",
                            "src": "10836:2:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10836:20:81"
                        },
                        "nodeType": "YulIf",
                        "src": "10833:47:81"
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "10893:41:81",
                        "value": {
                          "arguments": [
                            {
                              "name": "data",
                              "nodeType": "YulIdentifier",
                              "src": "10907:4:81"
                            },
                            {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "10917:1:81",
                                  "type": "",
                                  "value": "5"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "len",
                                      "nodeType": "YulIdentifier",
                                      "src": "10924:3:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "10929:2:81",
                                      "type": "",
                                      "value": "31"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "10920:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "10920:12:81"
                                }
                              ],
                              "functionName": {
                                "name": "shr",
                                "nodeType": "YulIdentifier",
                                "src": "10913:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "10913:20:81"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "10903:3:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10903:31:81"
                        },
                        "variables": [
                          {
                            "name": "_2",
                            "nodeType": "YulTypedName",
                            "src": "10897:2:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "nodeType": "YulVariableDeclaration",
                        "src": "10947:24:81",
                        "value": {
                          "name": "deleteStart",
                          "nodeType": "YulIdentifier",
                          "src": "10960:11:81"
                        },
                        "variables": [
                          {
                            "name": "start",
                            "nodeType": "YulTypedName",
                            "src": "10951:5:81",
                            "type": ""
                          }
                        ]
                      },
                      {
                        "body": {
                          "nodeType": "YulBlock",
                          "src": "11045:21:81",
                          "statements": [
                            {
                              "expression": {
                                "arguments": [
                                  {
                                    "name": "start",
                                    "nodeType": "YulIdentifier",
                                    "src": "11054:5:81"
                                  },
                                  {
                                    "name": "_1",
                                    "nodeType": "YulIdentifier",
                                    "src": "11061:2:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "sstore",
                                  "nodeType": "YulIdentifier",
                                  "src": "11047:6:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "11047:17:81"
                              },
                              "nodeType": "YulExpressionStatement",
                              "src": "11047:17:81"
                            }
                          ]
                        },
                        "condition": {
                          "arguments": [
                            {
                              "name": "start",
                              "nodeType": "YulIdentifier",
                              "src": "10995:5:81"
                            },
                            {
                              "name": "_2",
                              "nodeType": "YulIdentifier",
                              "src": "11002:2:81"
                            }
                          ],
                          "functionName": {
                            "name": "lt",
                            "nodeType": "YulIdentifier",
                            "src": "10992:2:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "10992:13:81"
                        },
                        "nodeType": "YulForLoop",
                        "post": {
                          "nodeType": "YulBlock",
                          "src": "11006:26:81",
                          "statements": [
                            {
                              "nodeType": "YulAssignment",
                              "src": "11008:22:81",
                              "value": {
                                "arguments": [
                                  {
                                    "name": "start",
                                    "nodeType": "YulIdentifier",
                                    "src": "11021:5:81"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "11028:1:81",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "add",
                                  "nodeType": "YulIdentifier",
                                  "src": "11017:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "11017:13:81"
                              },
                              "variableNames": [
                                {
                                  "name": "start",
                                  "nodeType": "YulIdentifier",
                                  "src": "11008:5:81"
                                }
                              ]
                            }
                          ]
                        },
                        "pre": {
                          "nodeType": "YulBlock",
                          "src": "10988:3:81",
                          "statements": []
                        },
                        "src": "10984:82:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "len",
                        "nodeType": "YulIdentifier",
                        "src": "10634:3:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "10639:2:81",
                        "type": "",
                        "value": "31"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "10631:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "10631:11:81"
                  },
                  "nodeType": "YulIf",
                  "src": "10628:448:81"
                }
              ]
            },
            "name": "clean_up_bytearray_end_slots_string_storage",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "array",
                "nodeType": "YulTypedName",
                "src": "10590:5:81",
                "type": ""
              },
              {
                "name": "len",
                "nodeType": "YulTypedName",
                "src": "10597:3:81",
                "type": ""
              },
              {
                "name": "startIndex",
                "nodeType": "YulTypedName",
                "src": "10602:10:81",
                "type": ""
              }
            ],
            "src": "10537:545:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "11172:81:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "11182:65:81",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "data",
                            "nodeType": "YulIdentifier",
                            "src": "11197:4:81"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "11215:1:81",
                                        "type": "",
                                        "value": "3"
                                      },
                                      {
                                        "name": "len",
                                        "nodeType": "YulIdentifier",
                                        "src": "11218:3:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nodeType": "YulIdentifier",
                                      "src": "11211:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "11211:11:81"
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "11228:1:81",
                                        "type": "",
                                        "value": "0"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "not",
                                      "nodeType": "YulIdentifier",
                                      "src": "11224:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "11224:6:81"
                                  }
                                ],
                                "functionName": {
                                  "name": "shr",
                                  "nodeType": "YulIdentifier",
                                  "src": "11207:3:81"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "11207:24:81"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nodeType": "YulIdentifier",
                              "src": "11203:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "11203:29:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "11193:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11193:40:81"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "11239:1:81",
                            "type": "",
                            "value": "1"
                          },
                          {
                            "name": "len",
                            "nodeType": "YulIdentifier",
                            "src": "11242:3:81"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "11235:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11235:11:81"
                      }
                    ],
                    "functionName": {
                      "name": "or",
                      "nodeType": "YulIdentifier",
                      "src": "11190:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11190:57:81"
                  },
                  "variableNames": [
                    {
                      "name": "used",
                      "nodeType": "YulIdentifier",
                      "src": "11182:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "extract_used_part_and_set_length_of_short_byte_array",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "data",
                "nodeType": "YulTypedName",
                "src": "11149:4:81",
                "type": ""
              },
              {
                "name": "len",
                "nodeType": "YulTypedName",
                "src": "11155:3:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "used",
                "nodeType": "YulTypedName",
                "src": "11163:4:81",
                "type": ""
              }
            ],
            "src": "11087:166:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "11361:1103:81",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "11402:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x41",
                            "nodeType": "YulIdentifier",
                            "src": "11404:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "11404:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "11404:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "len",
                        "nodeType": "YulIdentifier",
                        "src": "11377:3:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11382:18:81",
                        "type": "",
                        "value": "0xffffffffffffffff"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "11374:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11374:27:81"
                  },
                  "nodeType": "YulIf",
                  "src": "11371:53:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "slot",
                        "nodeType": "YulIdentifier",
                        "src": "11477:4:81"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "slot",
                                "nodeType": "YulIdentifier",
                                "src": "11515:4:81"
                              }
                            ],
                            "functionName": {
                              "name": "sload",
                              "nodeType": "YulIdentifier",
                              "src": "11509:5:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "11509:11:81"
                          }
                        ],
                        "functionName": {
                          "name": "extract_byte_array_length",
                          "nodeType": "YulIdentifier",
                          "src": "11483:25:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "11483:38:81"
                      },
                      {
                        "name": "len",
                        "nodeType": "YulIdentifier",
                        "src": "11523:3:81"
                      }
                    ],
                    "functionName": {
                      "name": "clean_up_bytearray_end_slots_string_storage",
                      "nodeType": "YulIdentifier",
                      "src": "11433:43:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11433:94:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "11433:94:81"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "11536:18:81",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "11553:1:81",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "srcOffset",
                      "nodeType": "YulTypedName",
                      "src": "11540:9:81",
                      "type": ""
                    }
                  ]
                },
                {
                  "cases": [
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "11597:609:81",
                        "statements": [
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "11611:32:81",
                            "value": {
                              "arguments": [
                                {
                                  "name": "len",
                                  "nodeType": "YulIdentifier",
                                  "src": "11630:3:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "11639:2:81",
                                      "type": "",
                                      "value": "31"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "not",
                                    "nodeType": "YulIdentifier",
                                    "src": "11635:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "11635:7:81"
                                }
                              ],
                              "functionName": {
                                "name": "and",
                                "nodeType": "YulIdentifier",
                                "src": "11626:3:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "11626:17:81"
                            },
                            "variables": [
                              {
                                "name": "loopEnd",
                                "nodeType": "YulTypedName",
                                "src": "11615:7:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "11656:49:81",
                            "value": {
                              "arguments": [
                                {
                                  "name": "slot",
                                  "nodeType": "YulIdentifier",
                                  "src": "11700:4:81"
                                }
                              ],
                              "functionName": {
                                "name": "array_dataslot_string_storage",
                                "nodeType": "YulIdentifier",
                                "src": "11670:29:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "11670:35:81"
                            },
                            "variables": [
                              {
                                "name": "dstPtr",
                                "nodeType": "YulTypedName",
                                "src": "11660:6:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "11718:18:81",
                            "value": {
                              "name": "srcOffset",
                              "nodeType": "YulIdentifier",
                              "src": "11727:9:81"
                            },
                            "variables": [
                              {
                                "name": "i",
                                "nodeType": "YulTypedName",
                                "src": "11722:1:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "11806:172:81",
                              "statements": [
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "name": "dstPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "11831:6:81"
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "arguments": [
                                              {
                                                "name": "src",
                                                "nodeType": "YulIdentifier",
                                                "src": "11856:3:81"
                                              },
                                              {
                                                "name": "srcOffset",
                                                "nodeType": "YulIdentifier",
                                                "src": "11861:9:81"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "add",
                                              "nodeType": "YulIdentifier",
                                              "src": "11852:3:81"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "11852:19:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "calldataload",
                                          "nodeType": "YulIdentifier",
                                          "src": "11839:12:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "11839:33:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sstore",
                                      "nodeType": "YulIdentifier",
                                      "src": "11824:6:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "11824:49:81"
                                  },
                                  "nodeType": "YulExpressionStatement",
                                  "src": "11824:49:81"
                                },
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "11890:24:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "dstPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "11904:6:81"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "11912:1:81",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "11900:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "11900:14:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "dstPtr",
                                      "nodeType": "YulIdentifier",
                                      "src": "11890:6:81"
                                    }
                                  ]
                                },
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "11931:33:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "srcOffset",
                                        "nodeType": "YulIdentifier",
                                        "src": "11948:9:81"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "11959:4:81",
                                        "type": "",
                                        "value": "0x20"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "11944:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "11944:20:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "srcOffset",
                                      "nodeType": "YulIdentifier",
                                      "src": "11931:9:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "condition": {
                              "arguments": [
                                {
                                  "name": "i",
                                  "nodeType": "YulIdentifier",
                                  "src": "11760:1:81"
                                },
                                {
                                  "name": "loopEnd",
                                  "nodeType": "YulIdentifier",
                                  "src": "11763:7:81"
                                }
                              ],
                              "functionName": {
                                "name": "lt",
                                "nodeType": "YulIdentifier",
                                "src": "11757:2:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "11757:14:81"
                            },
                            "nodeType": "YulForLoop",
                            "post": {
                              "nodeType": "YulBlock",
                              "src": "11772:21:81",
                              "statements": [
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "11774:17:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "name": "i",
                                        "nodeType": "YulIdentifier",
                                        "src": "11783:1:81"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "11786:4:81",
                                        "type": "",
                                        "value": "0x20"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "add",
                                      "nodeType": "YulIdentifier",
                                      "src": "11779:3:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "11779:12:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "i",
                                      "nodeType": "YulIdentifier",
                                      "src": "11774:1:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "pre": {
                              "nodeType": "YulBlock",
                              "src": "11753:3:81",
                              "statements": []
                            },
                            "src": "11749:229:81"
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "12023:127:81",
                              "statements": [
                                {
                                  "expression": {
                                    "arguments": [
                                      {
                                        "name": "dstPtr",
                                        "nodeType": "YulIdentifier",
                                        "src": "12048:6:81"
                                      },
                                      {
                                        "arguments": [
                                          {
                                            "arguments": [
                                              {
                                                "arguments": [
                                                  {
                                                    "name": "src",
                                                    "nodeType": "YulIdentifier",
                                                    "src": "12077:3:81"
                                                  },
                                                  {
                                                    "name": "srcOffset",
                                                    "nodeType": "YulIdentifier",
                                                    "src": "12082:9:81"
                                                  }
                                                ],
                                                "functionName": {
                                                  "name": "add",
                                                  "nodeType": "YulIdentifier",
                                                  "src": "12073:3:81"
                                                },
                                                "nodeType": "YulFunctionCall",
                                                "src": "12073:19:81"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "calldataload",
                                              "nodeType": "YulIdentifier",
                                              "src": "12060:12:81"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "12060:33:81"
                                          },
                                          {
                                            "arguments": [
                                              {
                                                "arguments": [
                                                  {
                                                    "arguments": [
                                                      {
                                                        "arguments": [
                                                          {
                                                            "kind": "number",
                                                            "nodeType": "YulLiteral",
                                                            "src": "12111:1:81",
                                                            "type": "",
                                                            "value": "3"
                                                          },
                                                          {
                                                            "name": "len",
                                                            "nodeType": "YulIdentifier",
                                                            "src": "12114:3:81"
                                                          }
                                                        ],
                                                        "functionName": {
                                                          "name": "shl",
                                                          "nodeType": "YulIdentifier",
                                                          "src": "12107:3:81"
                                                        },
                                                        "nodeType": "YulFunctionCall",
                                                        "src": "12107:11:81"
                                                      },
                                                      {
                                                        "kind": "number",
                                                        "nodeType": "YulLiteral",
                                                        "src": "12120:3:81",
                                                        "type": "",
                                                        "value": "248"
                                                      }
                                                    ],
                                                    "functionName": {
                                                      "name": "and",
                                                      "nodeType": "YulIdentifier",
                                                      "src": "12103:3:81"
                                                    },
                                                    "nodeType": "YulFunctionCall",
                                                    "src": "12103:21:81"
                                                  },
                                                  {
                                                    "arguments": [
                                                      {
                                                        "kind": "number",
                                                        "nodeType": "YulLiteral",
                                                        "src": "12130:1:81",
                                                        "type": "",
                                                        "value": "0"
                                                      }
                                                    ],
                                                    "functionName": {
                                                      "name": "not",
                                                      "nodeType": "YulIdentifier",
                                                      "src": "12126:3:81"
                                                    },
                                                    "nodeType": "YulFunctionCall",
                                                    "src": "12126:6:81"
                                                  }
                                                ],
                                                "functionName": {
                                                  "name": "shr",
                                                  "nodeType": "YulIdentifier",
                                                  "src": "12099:3:81"
                                                },
                                                "nodeType": "YulFunctionCall",
                                                "src": "12099:34:81"
                                              }
                                            ],
                                            "functionName": {
                                              "name": "not",
                                              "nodeType": "YulIdentifier",
                                              "src": "12095:3:81"
                                            },
                                            "nodeType": "YulFunctionCall",
                                            "src": "12095:39:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "and",
                                          "nodeType": "YulIdentifier",
                                          "src": "12056:3:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "12056:79:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sstore",
                                      "nodeType": "YulIdentifier",
                                      "src": "12041:6:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "12041:95:81"
                                  },
                                  "nodeType": "YulExpressionStatement",
                                  "src": "12041:95:81"
                                }
                              ]
                            },
                            "condition": {
                              "arguments": [
                                {
                                  "name": "loopEnd",
                                  "nodeType": "YulIdentifier",
                                  "src": "11997:7:81"
                                },
                                {
                                  "name": "len",
                                  "nodeType": "YulIdentifier",
                                  "src": "12006:3:81"
                                }
                              ],
                              "functionName": {
                                "name": "lt",
                                "nodeType": "YulIdentifier",
                                "src": "11994:2:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "11994:16:81"
                            },
                            "nodeType": "YulIf",
                            "src": "11991:159:81"
                          },
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "name": "slot",
                                  "nodeType": "YulIdentifier",
                                  "src": "12170:4:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "12184:1:81",
                                          "type": "",
                                          "value": "1"
                                        },
                                        {
                                          "name": "len",
                                          "nodeType": "YulIdentifier",
                                          "src": "12187:3:81"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "shl",
                                        "nodeType": "YulIdentifier",
                                        "src": "12180:3:81"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "12180:11:81"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "12193:1:81",
                                      "type": "",
                                      "value": "1"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "add",
                                    "nodeType": "YulIdentifier",
                                    "src": "12176:3:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "12176:19:81"
                                }
                              ],
                              "functionName": {
                                "name": "sstore",
                                "nodeType": "YulIdentifier",
                                "src": "12163:6:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "12163:33:81"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "12163:33:81"
                          }
                        ]
                      },
                      "nodeType": "YulCase",
                      "src": "11590:616:81",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11595:1:81",
                        "type": "",
                        "value": "1"
                      }
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "12223:235:81",
                        "statements": [
                          {
                            "nodeType": "YulVariableDeclaration",
                            "src": "12237:14:81",
                            "value": {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "12250:1:81",
                              "type": "",
                              "value": "0"
                            },
                            "variables": [
                              {
                                "name": "value",
                                "nodeType": "YulTypedName",
                                "src": "12241:5:81",
                                "type": ""
                              }
                            ]
                          },
                          {
                            "body": {
                              "nodeType": "YulBlock",
                              "src": "12283:74:81",
                              "statements": [
                                {
                                  "nodeType": "YulAssignment",
                                  "src": "12301:42:81",
                                  "value": {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "name": "src",
                                            "nodeType": "YulIdentifier",
                                            "src": "12327:3:81"
                                          },
                                          {
                                            "name": "srcOffset",
                                            "nodeType": "YulIdentifier",
                                            "src": "12332:9:81"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "add",
                                          "nodeType": "YulIdentifier",
                                          "src": "12323:3:81"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "12323:19:81"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "calldataload",
                                      "nodeType": "YulIdentifier",
                                      "src": "12310:12:81"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "12310:33:81"
                                  },
                                  "variableNames": [
                                    {
                                      "name": "value",
                                      "nodeType": "YulIdentifier",
                                      "src": "12301:5:81"
                                    }
                                  ]
                                }
                              ]
                            },
                            "condition": {
                              "name": "len",
                              "nodeType": "YulIdentifier",
                              "src": "12267:3:81"
                            },
                            "nodeType": "YulIf",
                            "src": "12264:93:81"
                          },
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "name": "slot",
                                  "nodeType": "YulIdentifier",
                                  "src": "12377:4:81"
                                },
                                {
                                  "arguments": [
                                    {
                                      "name": "value",
                                      "nodeType": "YulIdentifier",
                                      "src": "12436:5:81"
                                    },
                                    {
                                      "name": "len",
                                      "nodeType": "YulIdentifier",
                                      "src": "12443:3:81"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "extract_used_part_and_set_length_of_short_byte_array",
                                    "nodeType": "YulIdentifier",
                                    "src": "12383:52:81"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "12383:64:81"
                                }
                              ],
                              "functionName": {
                                "name": "sstore",
                                "nodeType": "YulIdentifier",
                                "src": "12370:6:81"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "12370:78:81"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "12370:78:81"
                          }
                        ]
                      },
                      "nodeType": "YulCase",
                      "src": "12215:243:81",
                      "value": "default"
                    }
                  ],
                  "expression": {
                    "arguments": [
                      {
                        "name": "len",
                        "nodeType": "YulIdentifier",
                        "src": "11573:3:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "11578:2:81",
                        "type": "",
                        "value": "31"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "11570:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "11570:11:81"
                  },
                  "nodeType": "YulSwitch",
                  "src": "11563: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": "11341:4:81",
                "type": ""
              },
              {
                "name": "src",
                "nodeType": "YulTypedName",
                "src": "11347:3:81",
                "type": ""
              },
              {
                "name": "len",
                "nodeType": "YulTypedName",
                "src": "11352:3:81",
                "type": ""
              }
            ],
            "src": "11258:1206:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "12643:228:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "12660:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "12671:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "12653:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12653:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "12653:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12694:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "12705:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "12690:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12690:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "12710:2:81",
                        "type": "",
                        "value": "38"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "12683:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12683:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "12683:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12733:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "12744:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "12729:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12729:18:81"
                      },
                      {
                        "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "12749:34:81",
                        "type": "",
                        "value": "Ownable: new owner is the zero a"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "12722:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12722:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "12722:62:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "12804:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "12815:2:81",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "12800:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "12800:18:81"
                      },
                      {
                        "hexValue": "646472657373",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "12820:8:81",
                        "type": "",
                        "value": "ddress"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "12793:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12793:36:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "12793:36:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "12838:27:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "12850:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "12861:3:81",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "12846:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "12846:19:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "12838:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "12620:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "12634:4:81",
                "type": ""
              }
            ],
            "src": "12469:402:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "13050:182:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "13067:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13078:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "13060:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13060:21:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "13060:21:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "13101:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "13112:2:81",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "13097:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13097:18:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13117:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "13090:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13090:30:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "13090:30:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "13140:9:81"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "13151:2:81",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "13136:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13136:18:81"
                      },
                      {
                        "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "13156:34:81",
                        "type": "",
                        "value": "Ownable: caller is not the owner"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "13129:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13129:62:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "13129:62:81"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "13200:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "13212:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13223:2:81",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "13208:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13208:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "13200:4:81"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "13027:9:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "13041:4:81",
                "type": ""
              }
            ],
            "src": "12876:356:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "13336:103:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "13346:26:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "13358:9:81"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13369:2:81",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "13354:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13354:18:81"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "13346:4:81"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "13388:9:81"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "13403:6:81"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "13415:3:81",
                                "type": "",
                                "value": "224"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "13420:10:81",
                                "type": "",
                                "value": "0xffffffff"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "13411:3:81"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "13411:20:81"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "13399:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13399:33:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "13381:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13381:52:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "13381:52:81"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bytes4__to_t_bytes4__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "13305:9:81",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "13316:6:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "13327:4:81",
                "type": ""
              }
            ],
            "src": "13237:202:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "13493:79:81",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "13503:17:81",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "13515:1:81"
                      },
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "13518:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nodeType": "YulIdentifier",
                      "src": "13511:3:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13511:9:81"
                  },
                  "variableNames": [
                    {
                      "name": "diff",
                      "nodeType": "YulIdentifier",
                      "src": "13503:4:81"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "13544:22:81",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "13546:16:81"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "13546:18:81"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "13546:18:81"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "diff",
                        "nodeType": "YulIdentifier",
                        "src": "13535:4:81"
                      },
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "13541:1:81"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "13532:2:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13532:11:81"
                  },
                  "nodeType": "YulIf",
                  "src": "13529:37:81"
                }
              ]
            },
            "name": "checked_sub_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nodeType": "YulTypedName",
                "src": "13475:1:81",
                "type": ""
              },
              {
                "name": "y",
                "nodeType": "YulTypedName",
                "src": "13478:1:81",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "diff",
                "nodeType": "YulTypedName",
                "src": "13484:4:81",
                "type": ""
              }
            ],
            "src": "13444:128:81"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "13609:95:81",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13626:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "13633:3:81",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "13638:10:81",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "13629:3:81"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "13629:20:81"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "13619:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13619:31:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "13619:31:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13666:1:81",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13669:4:81",
                        "type": "",
                        "value": "0x31"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "13659:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13659:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "13659:15:81"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13690:1:81",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "13693:4:81",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "13683:6:81"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "13683:15:81"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "13683:15:81"
                }
              ]
            },
            "name": "panic_error_0x31",
            "nodeType": "YulFunctionDefinition",
            "src": "13577:127:81"
          }
        ]
      },
      "contents": "{\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        if iszero(eq(value, and(value, shl(224, 0xffffffff)))) { revert(0, 0) }\n        value0 := value\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function validator_revert_address(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_bool(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, iszero(iszero(value)))) { revert(0, 0) }\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        value1 := abi_decode_bool(add(headStart, 32))\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 abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let _1 := 32\n        let tail_1 := add(headStart, _1)\n        mstore(headStart, _1)\n        let pos := tail_1\n        let length := mload(value0)\n        mstore(tail_1, length)\n        pos := add(headStart, 64)\n        let srcPtr := add(value0, _1)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, and(mload(srcPtr), sub(shl(160, 1), 1)))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        tail := pos\n    }\n    function abi_decode_tuple_t_addresst_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2, value3\n    {\n        if slt(sub(dataEnd, headStart), 128) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        let value_1 := calldataload(add(headStart, 32))\n        validator_revert_address(value_1)\n        value1 := value_1\n        let value_2 := calldataload(add(headStart, 64))\n        validator_revert_address(value_2)\n        value2 := value_2\n        value3 := calldataload(add(headStart, 96))\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_address(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_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        let tail_1 := add(headStart, 64)\n        mstore(headStart, 64)\n        let pos := tail_1\n        let length := mload(value0)\n        mstore(tail_1, length)\n        pos := add(headStart, 96)\n        let _1 := 0x20\n        let srcPtr := add(value0, _1)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, and(mload(srcPtr), sub(shl(160, 1), 1)))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        mstore(add(headStart, _1), sub(pos, headStart))\n        let pos_1 := pos\n        let length_1 := mload(value1)\n        mstore(pos, length_1)\n        pos_1 := add(pos, _1)\n        let srcPtr_1 := add(value1, _1)\n        let i_1 := 0\n        for { } lt(i_1, length_1) { i_1 := add(i_1, 1) }\n        {\n            mstore(pos_1, mload(srcPtr_1))\n            pos_1 := add(pos_1, _1)\n            srcPtr_1 := add(srcPtr_1, _1)\n        }\n        tail := pos_1\n    }\n    function abi_decode_tuple_t_bool(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_bool(headStart)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function allocate_memory(size) -> memPtr\n    {\n        memPtr := mload(64)\n        let newFreePtr := add(memPtr, and(add(size, 31), not(31)))\n        if or(gt(newFreePtr, 0xffffffffffffffff), lt(newFreePtr, memPtr)) { panic_error_0x41() }\n        mstore(64, newFreePtr)\n    }\n    function array_allocation_size_array_address_payable_dyn(length) -> size\n    {\n        if gt(length, 0xffffffffffffffff) { panic_error_0x41() }\n        size := add(shl(5, length), 0x20)\n    }\n    function abi_decode_array_uint256_dyn(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 dst := allocate_memory(array_allocation_size_array_address_payable_dyn(_1))\n        let dst_1 := dst\n        mstore(dst, _1)\n        dst := add(dst, _2)\n        let srcEnd := add(add(offset, shl(5, _1)), _2)\n        if gt(srcEnd, end) { revert(0, 0) }\n        let src := add(offset, _2)\n        for { } lt(src, srcEnd) { src := add(src, _2) }\n        {\n            mstore(dst, calldataload(src))\n            dst := add(dst, _2)\n        }\n        array := dst_1\n    }\n    function abi_decode_tuple_t_uint256t_array$_t_address_payable_$dyn_memory_ptrt_array$_t_uint256_$dyn_memory_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := calldataload(headStart)\n        let _1 := 32\n        let offset := calldataload(add(headStart, _1))\n        let _2 := 0xffffffffffffffff\n        if gt(offset, _2) { revert(0, 0) }\n        let _3 := add(headStart, offset)\n        if iszero(slt(add(_3, 0x1f), dataEnd)) { revert(0, 0) }\n        let _4 := calldataload(_3)\n        let dst := allocate_memory(array_allocation_size_array_address_payable_dyn(_4))\n        let dst_1 := dst\n        mstore(dst, _4)\n        dst := add(dst, _1)\n        let srcEnd := add(add(_3, shl(5, _4)), _1)\n        if gt(srcEnd, dataEnd) { revert(0, 0) }\n        let src := add(_3, _1)\n        for { } lt(src, srcEnd) { src := add(src, _1) }\n        {\n            let value := calldataload(src)\n            validator_revert_address(value)\n            mstore(dst, value)\n            dst := add(dst, _1)\n        }\n        value1 := dst_1\n        let offset_1 := calldataload(add(headStart, 64))\n        if gt(offset_1, _2) { revert(0, 0) }\n        value2 := abi_decode_array_uint256_dyn(add(headStart, offset_1), 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        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 length := calldataload(_2)\n        if gt(length, _1) { revert(0, 0) }\n        if gt(add(add(_2, length), 32), dataEnd) { revert(0, 0) }\n        value0 := add(_2, 32)\n        value1 := length\n    }\n    function abi_encode_tuple_t_string_memory_ptr__to_t_string_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let _1 := 32\n        mstore(headStart, _1)\n        let length := mload(value0)\n        mstore(add(headStart, _1), length)\n        let i := 0\n        for { } lt(i, length) { i := add(i, _1) }\n        {\n            mstore(add(add(headStart, i), 64), mload(add(add(value0, i), _1)))\n        }\n        mstore(add(add(headStart, length), 64), 0)\n        tail := add(add(headStart, and(add(length, 31), not(31))), 64)\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 abi_encode_tuple_t_stringliteral_6ce3e2a1d39a1e733326d9ad19a368bd3d0a0e54a77ac125270b9710bcd4d67f__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), \"creator must implement IERC721Cr\")\n        mstore(add(headStart, 96), \"eatorCore\")\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_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_decode_tuple_t_uint256_fromMemory(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := mload(headStart)\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 array_dataslot_string_storage(ptr) -> data\n    {\n        mstore(0, ptr)\n        data := keccak256(0, 0x20)\n    }\n    function clean_up_bytearray_end_slots_string_storage(array, len, startIndex)\n    {\n        if gt(len, 31)\n        {\n            let _1 := 0\n            mstore(_1, array)\n            let data := keccak256(_1, 0x20)\n            let deleteStart := add(data, shr(5, add(startIndex, 31)))\n            if lt(startIndex, 0x20) { deleteStart := data }\n            let _2 := add(data, shr(5, add(len, 31)))\n            let start := deleteStart\n            for { } lt(start, _2) { start := add(start, 1) }\n            { sstore(start, _1) }\n        }\n    }\n    function extract_used_part_and_set_length_of_short_byte_array(data, len) -> used\n    {\n        used := or(and(data, not(shr(shl(3, len), not(0)))), shl(1, len))\n    }\n    function copy_byte_array_to_storage_from_t_string_calldata_ptr_to_t_string_storage(slot, src, len)\n    {\n        if gt(len, 0xffffffffffffffff) { panic_error_0x41() }\n        clean_up_bytearray_end_slots_string_storage(slot, extract_byte_array_length(sload(slot)), len)\n        let srcOffset := 0\n        switch gt(len, 31)\n        case 1 {\n            let loopEnd := and(len, not(31))\n            let dstPtr := array_dataslot_string_storage(slot)\n            let i := srcOffset\n            for { } lt(i, loopEnd) { i := add(i, 0x20) }\n            {\n                sstore(dstPtr, calldataload(add(src, srcOffset)))\n                dstPtr := add(dstPtr, 1)\n                srcOffset := add(srcOffset, 0x20)\n            }\n            if lt(loopEnd, len)\n            {\n                sstore(dstPtr, and(calldataload(add(src, srcOffset)), not(shr(and(shl(3, len), 248), not(0)))))\n            }\n            sstore(slot, add(shl(1, len), 1))\n        }\n        default {\n            let value := 0\n            if len\n            {\n                value := calldataload(add(src, srcOffset))\n            }\n            sstore(slot, extract_used_part_and_set_length_of_short_byte_array(value, len))\n        }\n    }\n    function abi_encode_tuple_t_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_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_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 checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function panic_error_0x31()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x31)\n        revert(0, 0x24)\n    }\n}",
      "id": 81,
      "language": "Yul",
      "name": "#utility.yul"
    }
  ],
  "sourceMap": "281:2075:64:-:0;;;644:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;936:32:7;719:10:17;936:18:7;:32::i;:::-;683:8:64;:18;;-1:-1:-1;;;;;;683:18:64;-1:-1:-1;;;;;683:18:64;;;;;;;;;;281:2075;;2433:187:7;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:7;;;-1:-1:-1;;;;;;2541:17:7;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;14:290:81:-;84:6;137:2;125:9;116:7;112:23;108:32;105:52;;;153:1;150;143:12;105:52;179:16;;-1:-1:-1;;;;;224:31:81;;214:42;;204:70;;270:1;267;260:12;204:70;293:5;14:290;-1:-1:-1;;;14:290:81:o;:::-;281:2075:64;;;;;;",
  "deployedSourceMap": "281:2075:64:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;775:300;;;;;;:::i;:::-;;:::i;:::-;;;470:14:81;;463:22;445:41;;433:2;418:18;775:300:64;;;;;;;;1080:314:49;;;;;;:::i;:::-;;:::i;:::-;;1980:137:0;;;;;;:::i;:::-;;:::i;1712:205::-;;;;;;:::i;:::-;;:::i;1111:261::-;;;:::i;:::-;;;;;;;:::i;1372:146:64:-;;;;;;:::i;:::-;1496:15;;;;1372:146;;;;;;;1440:205:0;;;;;;:::i;:::-;;:::i;1831:101:7:-;;;:::i;1201:85::-;;;:::i;:::-;;;;;;;:::i;1902:452:64:-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;;:::i;1081:102::-;;;;;;:::i;:::-;;:::i;1189:90::-;;;;;;:::i;:::-;1247:15;:25;;-1:-1:-1;;1247:25:64;;;;;;;;;;1189:90;1711:185;;;;;;:::i;:::-;;:::i;1285:81::-;;;;;;:::i;:::-;;:::i;1524:181::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;2081:198:7:-;;;;;;:::i;:::-;;:::i;775:300:64:-;935:4;-1:-1:-1;;;;;;958:58:64;;-1:-1:-1;;;958:58:64;;:110;;;1032:36;1056:11;1032:23;:36::i;:::-;951:117;775:300;-1:-1:-1;;775:300:64:o;1080:314:49:-;942:10:0;931:7;:5;:7::i;:::-;-1:-1:-1;;;;;931:21:0;;:53;;;-1:-1:-1;956:28:0;:7;973:10;956:16;:28::i;:::-;923:102;;;;-1:-1:-1;;;923:102:0;;8485:2:81;923:102:0;;;8467:21:81;8524:2;8504:18;;;8497:30;8563:34;8543:18;;;8536:62;-1:-1:-1;;;8614:18:81;;;8607:34;8658:19;;923:102:0;;;;;;;;;1189:78:49::1;1221:7;-1:-1:-1::0;;;1189:31:49::1;:78::i;:::-;1181:132;;;::::0;-1:-1:-1;;;1181:132:49;;8890:2:81;1181:132:49::1;::::0;::::1;8872:21:81::0;8929:2;8909:18;;;8902:30;8968:34;8948:18;;;8941:62;-1:-1:-1;;;9019:18:81;;;9012:39;9068:19;;1181:132:49::1;8688:405:81::0;1181:132:49::1;1323:64;::::0;-1:-1:-1;;;1323:64:49;;470:14:81;;463:22;1323:64:49::1;::::0;::::1;445:41:81::0;-1:-1:-1;;;;;1323:55:49;::::1;::::0;::::1;::::0;418:18:81;;1323:64:49::1;;;;;;;;;;;;;;;;;::::0;::::1;;;;;;;;;;;;::::0;::::1;;;;;;;;;1080:314:::0;;:::o;1980:137:0:-;2042:4;2077:5;-1:-1:-1;;;;;2066:16:0;:7;:5;:7::i;:::-;-1:-1:-1;;;;;2066:16:0;;:43;;;-1:-1:-1;2086:23:0;:7;2103:5;2086:16;:23::i;1712:205::-;1094:13:7;:11;:13::i;:::-;1790:23:0::1;:7;1807:5:::0;1790:16:::1;:23::i;:::-;1786:125;;;1834:31;::::0;1854:10:::1;::::0;-1:-1:-1;;;;;1834:31:0;::::1;::::0;::::1;::::0;;;::::1;1879:21;:7;1894:5:::0;1879:14:::1;:21::i;:::-;;1786:125;1712:205:::0;:::o;1111:261::-;1164:23;1222:16;:7;:14;:16::i;:::-;-1:-1:-1;;;;;1208:31:0;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;1208:31:0;;1199:40;;1254:6;1249:94;1270:16;:7;:14;:16::i;:::-;1266:1;:20;1249:94;;;1319:13;:7;1330:1;1319:10;:13::i;:::-;1307:6;1314:1;1307:9;;;;;;;;:::i;:::-;-1:-1:-1;;;;;1307:25:0;;;:9;;;;;;;;;;;:25;1288:3;;;;:::i;:::-;;;;1249:94;;;;1111:261;:::o;1440:205::-;1094:13:7;:11;:13::i;:::-;1520:23:0::1;:7;1537:5:::0;1520:16:::1;:23::i;:::-;1515:124;;1564:32;::::0;1585:10:::1;::::0;-1:-1:-1;;;;;1564:32:0;::::1;::::0;::::1;::::0;;;::::1;1610:18;:7;1622:5:::0;1610:11:::1;:18::i;1831:101:7:-:0;1094:13;:11;:13::i;:::-;1895:30:::1;1922:1;1895:18;:30::i;:::-;1831:101::o:0;1201:85::-;1247:7;1273:6;-1:-1:-1;;;;;1273:6:7;;1201:85::o;1902:452:64:-;2063:8;;1990:24;;;;-1:-1:-1;;;;;2052:19:64;;;2063:8;;2052:19;2044:39;;;;-1:-1:-1;;;2044:39:64;;;;;;;:::i;:::-;2140:1;2098:21;;;:12;:21;;;;;:39;:43;2094:254;;2157:23;2183:21;;;:12;:21;;;;;;;;2157:47;;;;;;;;;;;;;;;;;;;;;;2183:21;;2157:47;;2183:21;;2157:47;;;2183:21;2157:47;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2157:47:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2226:4;:15;;;2243:4;:11;;;2218:37;;;;;;;2094:254;-1:-1:-1;;2294:24:64;;;2316:1;2294:24;;;;;;2320:16;;;;;;;;;2294:24;2094:254;1902:452;;;;;:::o;1081:102::-;1149:8;;1130:46;;-1:-1:-1;;;1130:46:64;;-1:-1:-1;;;;;1149:8:64;;;;1130:42;;:46;;1173:2;;1130:46;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;1711:185::-;1859:30;;;;;;;;;;;;;;;;;;-1:-1:-1;1835:21:64;;;:12;:21;;;;;;:54;;;;1859:30;;1835:21;;:54;;:21;;:54;;;:::i;:::-;-1:-1:-1;1835:54:64;;;;;;;;;;;;;;;;:::i;1285:81::-;1344:9;:15;1356:3;;1344:9;:15;:::i;:::-;;1285:81;;:::o;1524:181::-;1652:8;;1608:13;;-1:-1:-1;;;;;1641:19:64;;;1652:8;;1641:19;1633:39;;;;-1:-1:-1;;;1633:39:64;;;;;;;:::i;:::-;1689:9;1682:16;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1524:181;;;;:::o;2081:198:7:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:7;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:7;;12671:2:81;2161:73:7::1;::::0;::::1;12653:21:81::0;12710:2;12690:18;;;12683:30;12749:34;12729:18;;;12722:62;-1:-1:-1;;;12800:18:81;;;12793:36;12846:19;;2161:73:7::1;12469:402:81::0;2161:73:7::1;2244:28;2263:8;2244:18;:28::i;628:267:43:-:0;754:4;-1:-1:-1;;;;;;777:59:43;;-1:-1:-1;;;777:59:43;;:111;;;852:36;876:11;852:23;:36::i;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;1349:282:20:-;1436:4;1543:23;1558:7;1543:14;:23::i;:::-;:81;;;;;1570:54;1603:7;1612:11;1570:32;:54::i;1359:130:7:-;719:10:17;1422:7:7;:5;:7::i;:::-;-1:-1:-1;;;;;1422:23:7;;1414:68;;;;-1:-1:-1;;;1414:68:7;;13078:2:81;1414:68:7;;;13060:21:81;;;13097:18;;;13090:30;13156:34;13136:18;;;13129:62;13208:18;;1414:68:7;12876:356:81;8615:156:23;8688:4;8711:53;8719:3;-1:-1:-1;;;;;8739:23:23;;8711:7;:53::i;9098:115::-;9161:7;9187:19;9195:3;4537:18;;4455:107;9555:156;9629:7;9679:22;9683:3;9695:5;9679:3;:22::i;8297:150::-;8367:4;8390:50;8395:3;-1:-1:-1;;;;;8415:23:23;;8390:4;:50::i;2433:187:7:-;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:7;;;-1:-1:-1;;;;;;2541:17:7;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;703:279:49:-;829:4;-1:-1:-1;;;;;;852:71:49;;-1:-1:-1;;;852:71:49;;:123;;;939:36;963:11;939:23;:36::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;;;;;;13399:33:81;;4433:71:20;;;;13381:52:81;;;;4433:71:20;;;;;;;;;;13354: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;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;;;;;4904:118;4971:7;4997:3;:11;;5009:5;4997:18;;;;;;;;:::i;:::-;;;;;;;;;4990:25;;4904:118;;;;:::o;2206:404::-;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;;601:216:41;694:4;-1:-1:-1;;;;;;717:41:41;;-1:-1:-1;;;717:41:41;;:93;;;774:36;798:11;667:4:0;-1:-1:-1;;;;;;690:46:0;;-1:-1:-1;;;690:46:0;;:98;;-1:-1:-1;;;;;;;;;;937:40:19;;;752:36:0;829:155:19;-1:-1:-1;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:286:81;72:6;125:2;113:9;104:7;100:23;96:32;93:52;;;141:1;138;131:12;93:52;167:23;;-1:-1:-1;;;;;;219:32:81;;209:43;;199:71;;266:1;263;256:12;497:131;-1:-1:-1;;;;;572:31:81;;562:42;;552:70;;618:1;615;608:12;633:160;698:20;;754:13;;747:21;737:32;;727:60;;783:1;780;773:12;727:60;633:160;;;:::o;798:315::-;863:6;871;924:2;912:9;903:7;899:23;895:32;892:52;;;940:1;937;930:12;892:52;979:9;966:23;998:31;1023:5;998:31;:::i;:::-;1048:5;-1:-1:-1;1072:35:81;1103:2;1088:18;;1072:35;:::i;:::-;1062:45;;798:315;;;;;:::o;1118:247::-;1177:6;1230:2;1218:9;1209:7;1205:23;1201:32;1198:52;;;1246:1;1243;1236:12;1198:52;1285:9;1272:23;1304:31;1329:5;1304:31;:::i;1370:658::-;1541:2;1593:21;;;1663:13;;1566:18;;;1685:22;;;1512:4;;1541:2;1764:15;;;;1738:2;1723:18;;;1512:4;1807:195;1821:6;1818:1;1815:13;1807:195;;;1886:13;;-1:-1:-1;;;;;1882:39:81;1870:52;;1977:15;;;;1942:12;;;;1918:1;1836:9;1807:195;;;-1:-1:-1;2019:3:81;;1370:658;-1:-1:-1;;;;;;1370:658:81:o;2033:598::-;2119:6;2127;2135;2143;2196:3;2184:9;2175:7;2171:23;2167:33;2164:53;;;2213:1;2210;2203:12;2164:53;2252:9;2239:23;2271:31;2296:5;2271:31;:::i;:::-;2321:5;-1:-1:-1;2378:2:81;2363:18;;2350:32;2391:33;2350:32;2391:33;:::i;:::-;2443:7;-1:-1:-1;2502:2:81;2487:18;;2474:32;2515:33;2474:32;2515:33;:::i;:::-;2033:598;;;;-1:-1:-1;2567:7:81;;2621:2;2606:18;2593:32;;-1:-1:-1;;2033:598:81:o;2636:203::-;-1:-1:-1;;;;;2800:32:81;;;;2782:51;;2770:2;2755:18;;2636:203::o;2844:315::-;2912:6;2920;2973:2;2961:9;2952:7;2948:23;2944:32;2941:52;;;2989:1;2986;2979:12;2941:52;3028:9;3015:23;3047:31;3072:5;3047:31;:::i;:::-;3097:5;3149:2;3134:18;;;;3121:32;;-1:-1:-1;;;2844:315:81:o;3164:1194::-;3448:2;3460:21;;;3530:13;;3433:18;;;3552:22;;;3400:4;;3627;;3605:2;3590:18;;;3654:15;;;3400:4;3697:195;3711:6;3708:1;3705:13;3697:195;;;3776:13;;-1:-1:-1;;;;;3772:39:81;3760:52;;3832:12;;;;3867:15;;;;3808:1;3726:9;3697:195;;;-1:-1:-1;;;3928:19:81;;;3908:18;;;3901:47;3998:13;;4020:21;;;4096:15;;;;4059:12;;;4131:1;4141:189;4157:8;4152:3;4149:17;4141:189;;;4226:15;;4212:30;;4303:17;;;;4264:14;;;;4185:1;4176:11;4141:189;;;-1:-1:-1;4347:5:81;;3164:1194;-1:-1:-1;;;;;;;3164:1194:81:o;4363:180::-;4419:6;4472:2;4460:9;4451:7;4447:23;4443:32;4440:52;;;4488:1;4485;4478:12;4440:52;4511:26;4527:9;4511:26;:::i;4548:127::-;4609:10;4604:3;4600:20;4597:1;4590:31;4640:4;4637:1;4630:15;4664:4;4661:1;4654:15;4680:275;4751:2;4745:9;4816:2;4797:13;;-1:-1:-1;;4793:27:81;4781:40;;-1:-1:-1;;;;;4836:34:81;;4872:22;;;4833:62;4830:88;;;4898:18;;:::i;:::-;4934:2;4927:22;4680:275;;-1:-1:-1;4680:275:81:o;4960:191::-;5028:4;-1:-1:-1;;;;;5053:6:81;5050:30;5047:56;;;5083:18;;:::i;:::-;-1:-1:-1;5128:1:81;5124:14;5140:4;5120:25;;4960:191::o;5156:670::-;5210:5;5263:3;5256:4;5248:6;5244:17;5240:27;5230:55;;5281:1;5278;5271:12;5230:55;5317:6;5304:20;5343:4;5367:68;5383:51;5431:2;5383:51;:::i;:::-;5367:68;:::i;:::-;5469:15;;;5555:1;5551:10;;;;5539:23;;5535:32;;;5500:12;;;;5579:15;;;5576:35;;;5607:1;5604;5597:12;5576:35;5643:2;5635:6;5631:15;5655:142;5671:6;5666:3;5663:15;5655:142;;;5737:17;;5725:30;;5775:12;;;;5688;;5655:142;;;-1:-1:-1;5815:5:81;5156:670;-1:-1:-1;;;;;;5156:670:81:o;5831:1297::-;5966:6;5974;5982;6035:2;6023:9;6014:7;6010:23;6006:32;6003:52;;;6051:1;6048;6041:12;6003:52;6087:9;6074:23;6064:33;;6116:2;6169;6158:9;6154:18;6141:32;-1:-1:-1;;;;;6233:2:81;6225:6;6222:14;6219:34;;;6249:1;6246;6239:12;6219:34;6287:6;6276:9;6272:22;6262:32;;6332:7;6325:4;6321:2;6317:13;6313:27;6303:55;;6354:1;6351;6344:12;6303:55;6390:2;6377:16;6413:68;6429:51;6477:2;6429:51;:::i;6413:68::-;6515:15;;;6597:1;6593:10;;;;6585:19;;6581:28;;;6546:12;;;;6621:19;;;6618:39;;;6653:1;6650;6643:12;6618:39;6677:11;;;;6697:217;6713:6;6708:3;6705:15;6697:217;;;6793:3;6780:17;6810:31;6835:5;6810:31;:::i;:::-;6854:18;;6730:12;;;;6892;;;;6697:217;;;6933:5;-1:-1:-1;;;6991:2:81;6976:18;;6963:32;;-1:-1:-1;7007:16:81;;;7004:36;;;7036:1;7033;7026:12;7004:36;;;7059:63;7114:7;7103:8;7092:9;7088:24;7059:63;:::i;:::-;7049:73;;;5831:1297;;;;;:::o;7133:592::-;7204:6;7212;7265:2;7253:9;7244:7;7240:23;7236:32;7233:52;;;7281:1;7278;7271:12;7233:52;7321:9;7308:23;-1:-1:-1;;;;;7391:2:81;7383:6;7380:14;7377:34;;;7407:1;7404;7397:12;7377:34;7445:6;7434:9;7430:22;7420:32;;7490:7;7483:4;7479:2;7475:13;7471:27;7461:55;;7512:1;7509;7502:12;7461:55;7552:2;7539:16;7578:2;7570:6;7567:14;7564:34;;;7594:1;7591;7584:12;7564:34;7639:7;7634:2;7625:6;7621:2;7617:15;7613:24;7610:37;7607:57;;;7660:1;7657;7650:12;7607:57;7691:2;7683:11;;;;;7713:6;;-1:-1:-1;7133:592:81;;-1:-1:-1;;;;7133:592:81:o;7730:548::-;7842:4;7871:2;7900;7889:9;7882:21;7932:6;7926:13;7975:6;7970:2;7959:9;7955:18;7948:34;8000:1;8010:140;8024:6;8021:1;8018:13;8010:140;;;8119:14;;;8115:23;;8109:30;8085:17;;;8104:2;8081:26;8074:66;8039:10;;8010:140;;;8014:3;8199:1;8194:2;8185:6;8174:9;8170:22;8166:31;8159:42;8269:2;8262;8258:7;8253:2;8245:6;8241:15;8237:29;8226:9;8222:45;8218:54;8210:62;;;;7730:548;;;;:::o;9098:127::-;9159:10;9154:3;9150:20;9147:1;9140:31;9190:4;9187:1;9180:15;9214:4;9211:1;9204:15;9230:127;9291:10;9286:3;9282:20;9279:1;9272:31;9322:4;9319:1;9312:15;9346:4;9343:1;9336:15;9362:135;9401:3;9422:17;;;9419:43;;9442:18;;:::i;:::-;-1:-1:-1;9489:1:81;9478:13;;9362:135::o;9502:330::-;9704:2;9686:21;;;9743:1;9723:18;;;9716:29;-1:-1:-1;;;9776:2:81;9761:18;;9754:37;9823:2;9808:18;;9502:330::o;9837:184::-;9907:6;9960:2;9948:9;9939:7;9935:23;9931:32;9928:52;;;9976:1;9973;9966:12;9928:52;-1:-1:-1;9999:16:81;;9837:184;-1:-1:-1;9837:184:81:o;10026:380::-;10105:1;10101:12;;;;10148;;;10169:61;;10223:4;10215:6;10211:17;10201:27;;10169:61;10276:2;10268:6;10265:14;10245:18;10242:38;10239:161;;10322:10;10317:3;10313:20;10310:1;10303:31;10357:4;10354:1;10347:15;10385:4;10382:1;10375:15;10239:161;;10026:380;;;:::o;10537:545::-;10639:2;10634:3;10631:11;10628:448;;;10675:1;10700:5;10696:2;10689:17;10745:4;10741:2;10731:19;10815:2;10803:10;10799:19;10796:1;10792:27;10786:4;10782:38;10851:4;10839:10;10836:20;10833:47;;;-1:-1:-1;10874:4:81;10833:47;10929:2;10924:3;10920:12;10917:1;10913:20;10907:4;10903:31;10893:41;;10984:82;11002:2;10995:5;10992:13;10984:82;;;11047:17;;;11028:1;11017:13;10984:82;;11258:1206;-1:-1:-1;;;;;11377:3:81;11374:27;11371:53;;;11404:18;;:::i;:::-;11433:94;11523:3;11483:38;11515:4;11509:11;11483:38;:::i;:::-;11477:4;11433:94;:::i;:::-;11553:1;11578:2;11573:3;11570:11;11595:1;11590:616;;;;12250:1;12267:3;12264:93;;;-1:-1:-1;12323:19:81;;;12310:33;12264:93;-1:-1:-1;;11215:1:81;11211:11;;;11207:24;11203:29;11193:40;11239:1;11235:11;;;11190:57;12370:78;;11563:895;;11590:616;10484:1;10477:14;;;10521:4;10508:18;;-1:-1:-1;;11626:17:81;;;11727:9;11749:229;11763:7;11760:1;11757:14;11749:229;;;11852:19;;;11839:33;11824:49;;11959:4;11944:20;;;;11912:1;11900:14;;;;11779:12;11749:229;;;11753:3;12006;11997:7;11994:16;11991:159;;;12130:1;12126:6;12120:3;12114;12111:1;12107:11;12103:21;12099:34;12095:39;12082:9;12077:3;12073:19;12060:33;12056:79;12048:6;12041:95;11991:159;;;12193:1;12187:3;12184:1;12180:11;12176:19;12170:4;12163:33;11563:895;;;11258:1206;;;:::o;13444:128::-;13511:9;;;13532:11;;;13529:37;;;13546:18;;:::i;13577:127::-;13638:10;13633:3;13629:20;13626:1;13619:31;13669:4;13666:1;13659:15;13693:4;13690:1;13683:15",
  "source": "// SPDX-License-Identifier: MIT\n\npragma solidity ^0.8.0;\n\nimport \"../core/IERC721CreatorCore.sol\";\nimport \"../extensions/ERC721/ERC721CreatorExtensionApproveTransfer.sol\";\nimport \"../extensions/ICreatorExtensionTokenURI.sol\";\nimport \"../extensions/CreatorExtensionRoyalties.sol\";\n\ncontract MockERC721CreatorExtensionOverride is ERC721CreatorExtensionApproveTransfer, CreatorExtensionRoyalties, ICreatorExtensionTokenURI {\n\n    bool _approveEnabled;\n    string _tokenURI;\n    address _creator;\n    mapping(uint256 => RoyaltyInfo) _royaltyInfo;\n\n    struct RoyaltyInfo {\n        address payable[] recipients;\n        uint256[] values;\n    }\n\n    constructor(address creator) {\n        _creator = creator;\n    }\n\n    /**\n     * @dev See {IERC165-supportsInterface}.\n     */\n    function supportsInterface(bytes4 interfaceId) public view virtual override(ERC721CreatorExtensionApproveTransfer, CreatorExtensionRoyalties, IERC165) returns (bool) {\n        return interfaceId == type(ICreatorExtensionTokenURI).interfaceId\n            || super.supportsInterface(interfaceId);\n    }\n\n    function testMint(address to) external {\n        IERC721CreatorCore(_creator).mintExtension(to);\n    }\n\n    function setApproveEnabled(bool enabled) public {\n        _approveEnabled = enabled;\n    }\n\n    function setTokenURI(string calldata uri) public {\n        _tokenURI = uri;\n    }\n\n    function approveTransfer(address, address, address, uint256) external view virtual override returns (bool) {\n        return _approveEnabled;\n    }\n\n    function tokenURI(address creator, uint256) external view virtual override returns (string memory) {\n        require(creator == _creator, \"Invalid\");\n        return _tokenURI;\n    }\n\n    function setRoyaltyOverrides(uint256 tokenId, address payable[] memory receivers, uint256[] memory values) public {\n        _royaltyInfo[tokenId] = RoyaltyInfo(receivers, values);\n    }\n\n    function getRoyalties(address creator, uint256 tokenId) external override view returns (address payable[] memory, uint256[] memory) {\n        require(creator == _creator, \"Invalid\");\n\n        if (_royaltyInfo[tokenId].recipients.length > 0) {\n            RoyaltyInfo memory info = _royaltyInfo[tokenId];\n            return (info.recipients, info.values);\n        } else {\n            return (new address payable[](0), new uint256[](0));\n        }\n    }\n}\n",
  "sourcePath": "/Users/chung/git/manifoldxyz/solidity/creator-core-solidity/contracts/mocks/MockERC721CreatorExtensionOverride.sol",
  "ast": {
    "absolutePath": "project:/contracts/mocks/MockERC721CreatorExtensionOverride.sol",
    "exportedSymbols": {
      "AdminControl": [
        185
      ],
      "Context": [
        1933
      ],
      "CreatorExtension": [
        15525
      ],
      "CreatorExtensionRoyalties": [
        15786
      ],
      "ERC165": [
        2132
      ],
      "ERC165Checker": [
        2326
      ],
      "ERC721CreatorExtension": [
        16085
      ],
      "ERC721CreatorExtensionApproveTransfer": [
        16156
      ],
      "EnumerableSet": [
        3816
      ],
      "IAdminControl": [
        417
      ],
      "ICreatorCore": [
        15197
      ],
      "ICreatorExtensionRoyalties": [
        16574
      ],
      "ICreatorExtensionTokenURI": [
        16591
      ],
      "IERC165": [
        2338
      ],
      "IERC721CreatorCore": [
        15407
      ],
      "IERC721CreatorExtensionApproveTransfer": [
        16483
      ],
      "MockERC721CreatorExtensionOverride": [
        17715
      ],
      "Ownable": [
        1157
      ]
    },
    "id": 17716,
    "license": "MIT",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 17503,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "33:23:64"
      },
      {
        "absolutePath": "project:/contracts/core/IERC721CreatorCore.sol",
        "file": "../core/IERC721CreatorCore.sol",
        "id": 17504,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 17716,
        "sourceUnit": 15408,
        "src": "58:40:64",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/extensions/ERC721/ERC721CreatorExtensionApproveTransfer.sol",
        "file": "../extensions/ERC721/ERC721CreatorExtensionApproveTransfer.sol",
        "id": 17505,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 17716,
        "sourceUnit": 16157,
        "src": "99:72:64",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/extensions/ICreatorExtensionTokenURI.sol",
        "file": "../extensions/ICreatorExtensionTokenURI.sol",
        "id": 17506,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 17716,
        "sourceUnit": 16592,
        "src": "172:53:64",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/extensions/CreatorExtensionRoyalties.sol",
        "file": "../extensions/CreatorExtensionRoyalties.sol",
        "id": 17507,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 17716,
        "sourceUnit": 15787,
        "src": "226:53:64",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 17508,
              "name": "ERC721CreatorExtensionApproveTransfer",
              "nameLocations": [
                "328:37:64"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 16156,
              "src": "328:37:64"
            },
            "id": 17509,
            "nodeType": "InheritanceSpecifier",
            "src": "328:37:64"
          },
          {
            "baseName": {
              "id": 17510,
              "name": "CreatorExtensionRoyalties",
              "nameLocations": [
                "367:25:64"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 15786,
              "src": "367:25:64"
            },
            "id": 17511,
            "nodeType": "InheritanceSpecifier",
            "src": "367:25:64"
          },
          {
            "baseName": {
              "id": 17512,
              "name": "ICreatorExtensionTokenURI",
              "nameLocations": [
                "394:25:64"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 16591,
              "src": "394:25:64"
            },
            "id": 17513,
            "nodeType": "InheritanceSpecifier",
            "src": "394:25:64"
          }
        ],
        "canonicalName": "MockERC721CreatorExtensionOverride",
        "contractDependencies": [],
        "contractKind": "contract",
        "fullyImplemented": true,
        "id": 17715,
        "linearizedBaseContracts": [
          17715,
          16591,
          15786,
          16574,
          16156,
          16483,
          16085,
          15525,
          185,
          2132,
          417,
          2338,
          1157,
          1933
        ],
        "name": "MockERC721CreatorExtensionOverride",
        "nameLocation": "290:34:64",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 17515,
            "mutability": "mutable",
            "name": "_approveEnabled",
            "nameLocation": "432:15:64",
            "nodeType": "VariableDeclaration",
            "scope": 17715,
            "src": "427:20:64",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 17514,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "427:4:64",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 17517,
            "mutability": "mutable",
            "name": "_tokenURI",
            "nameLocation": "460:9:64",
            "nodeType": "VariableDeclaration",
            "scope": 17715,
            "src": "453:16:64",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_storage",
              "typeString": "string"
            },
            "typeName": {
              "id": 17516,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "453:6:64",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 17519,
            "mutability": "mutable",
            "name": "_creator",
            "nameLocation": "483:8:64",
            "nodeType": "VariableDeclaration",
            "scope": 17715,
            "src": "475:16:64",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 17518,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "475:7:64",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 17524,
            "mutability": "mutable",
            "name": "_royaltyInfo",
            "nameLocation": "529:12:64",
            "nodeType": "VariableDeclaration",
            "scope": 17715,
            "src": "497:44:64",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_RoyaltyInfo_$17531_storage_$",
              "typeString": "mapping(uint256 => struct MockERC721CreatorExtensionOverride.RoyaltyInfo)"
            },
            "typeName": {
              "id": 17523,
              "keyName": "",
              "keyNameLocation": "-1:-1:-1",
              "keyType": {
                "id": 17520,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "505:7:64",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "nodeType": "Mapping",
              "src": "497:31:64",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_RoyaltyInfo_$17531_storage_$",
                "typeString": "mapping(uint256 => struct MockERC721CreatorExtensionOverride.RoyaltyInfo)"
              },
              "valueName": "",
              "valueNameLocation": "-1:-1:-1",
              "valueType": {
                "id": 17522,
                "nodeType": "UserDefinedTypeName",
                "pathNode": {
                  "id": 17521,
                  "name": "RoyaltyInfo",
                  "nameLocations": [
                    "516:11:64"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 17531,
                  "src": "516:11:64"
                },
                "referencedDeclaration": 17531,
                "src": "516:11:64",
                "typeDescriptions": {
                  "typeIdentifier": "t_struct$_RoyaltyInfo_$17531_storage_ptr",
                  "typeString": "struct MockERC721CreatorExtensionOverride.RoyaltyInfo"
                }
              }
            },
            "visibility": "internal"
          },
          {
            "canonicalName": "MockERC721CreatorExtensionOverride.RoyaltyInfo",
            "id": 17531,
            "members": [
              {
                "constant": false,
                "id": 17527,
                "mutability": "mutable",
                "name": "recipients",
                "nameLocation": "595:10:64",
                "nodeType": "VariableDeclaration",
                "scope": 17531,
                "src": "577:28:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                  "typeString": "address payable[]"
                },
                "typeName": {
                  "baseType": {
                    "id": 17525,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "577:15:64",
                    "stateMutability": "payable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address_payable",
                      "typeString": "address payable"
                    }
                  },
                  "id": 17526,
                  "nodeType": "ArrayTypeName",
                  "src": "577:17:64",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                    "typeString": "address payable[]"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 17530,
                "mutability": "mutable",
                "name": "values",
                "nameLocation": "625:6:64",
                "nodeType": "VariableDeclaration",
                "scope": 17531,
                "src": "615:16:64",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                  "typeString": "uint256[]"
                },
                "typeName": {
                  "baseType": {
                    "id": 17528,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "615:7:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 17529,
                  "nodeType": "ArrayTypeName",
                  "src": "615:9:64",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                    "typeString": "uint256[]"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "RoyaltyInfo",
            "nameLocation": "555:11:64",
            "nodeType": "StructDefinition",
            "scope": 17715,
            "src": "548:90:64",
            "visibility": "public"
          },
          {
            "body": {
              "id": 17540,
              "nodeType": "Block",
              "src": "673:35:64",
              "statements": [
                {
                  "expression": {
                    "id": 17538,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 17536,
                      "name": "_creator",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17519,
                      "src": "683:8:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 17537,
                      "name": "creator",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17533,
                      "src": "694:7:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "683:18:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 17539,
                  "nodeType": "ExpressionStatement",
                  "src": "683:18:64"
                }
              ]
            },
            "id": 17541,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17534,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17533,
                  "mutability": "mutable",
                  "name": "creator",
                  "nameLocation": "664:7:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 17541,
                  "src": "656:15:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 17532,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "656:7:64",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "655:17:64"
            },
            "returnParameters": {
              "id": 17535,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "673:0:64"
            },
            "scope": 17715,
            "src": "644:64:64",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              2337,
              15770,
              16124
            ],
            "body": {
              "id": 17565,
              "nodeType": "Block",
              "src": "941:134:64",
              "statements": [
                {
                  "expression": {
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 17563,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "commonType": {
                        "typeIdentifier": "t_bytes4",
                        "typeString": "bytes4"
                      },
                      "id": 17558,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "id": 17553,
                        "name": "interfaceId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17544,
                        "src": "958:11:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "expression": {
                          "arguments": [
                            {
                              "id": 17555,
                              "name": "ICreatorExtensionTokenURI",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 16591,
                              "src": "978:25:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_ICreatorExtensionTokenURI_$16591_$",
                                "typeString": "type(contract ICreatorExtensionTokenURI)"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_type$_t_contract$_ICreatorExtensionTokenURI_$16591_$",
                                "typeString": "type(contract ICreatorExtensionTokenURI)"
                              }
                            ],
                            "id": 17554,
                            "name": "type",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 4294967269,
                            "src": "973:4:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_metatype_pure$__$returns$__$",
                              "typeString": "function () pure"
                            }
                          },
                          "id": 17556,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "973:31:64",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_magic_meta_type_t_contract$_ICreatorExtensionTokenURI_$16591",
                            "typeString": "type(contract ICreatorExtensionTokenURI)"
                          }
                        },
                        "id": 17557,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "memberLocation": "1005:11:64",
                        "memberName": "interfaceId",
                        "nodeType": "MemberAccess",
                        "src": "973:43:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes4",
                          "typeString": "bytes4"
                        }
                      },
                      "src": "958:58:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "arguments": [
                        {
                          "id": 17561,
                          "name": "interfaceId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17544,
                          "src": "1056:11:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes4",
                            "typeString": "bytes4"
                          }
                        ],
                        "expression": {
                          "id": 17559,
                          "name": "super",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 4294967271,
                          "src": "1032:5:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_super$_MockERC721CreatorExtensionOverride_$17715_$",
                            "typeString": "type(contract super MockERC721CreatorExtensionOverride)"
                          }
                        },
                        "id": 17560,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "1038:17:64",
                        "memberName": "supportsInterface",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 15770,
                        "src": "1032:23:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_view$_t_bytes4_$returns$_t_bool_$",
                          "typeString": "function (bytes4) view returns (bool)"
                        }
                      },
                      "id": 17562,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1032:36:64",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "958:110:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 17552,
                  "id": 17564,
                  "nodeType": "Return",
                  "src": "951:117:64"
                }
              ]
            },
            "documentation": {
              "id": 17542,
              "nodeType": "StructuredDocumentation",
              "src": "714:56:64",
              "text": " @dev See {IERC165-supportsInterface}."
            },
            "functionSelector": "01ffc9a7",
            "id": 17566,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "supportsInterface",
            "nameLocation": "784:17:64",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 17549,
              "nodeType": "OverrideSpecifier",
              "overrides": [
                {
                  "id": 17546,
                  "name": "ERC721CreatorExtensionApproveTransfer",
                  "nameLocations": [
                    "851:37:64"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 16156,
                  "src": "851:37:64"
                },
                {
                  "id": 17547,
                  "name": "CreatorExtensionRoyalties",
                  "nameLocations": [
                    "890:25:64"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 15786,
                  "src": "890:25:64"
                },
                {
                  "id": 17548,
                  "name": "IERC165",
                  "nameLocations": [
                    "917:7:64"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 2338,
                  "src": "917:7:64"
                }
              ],
              "src": "842:83:64"
            },
            "parameters": {
              "id": 17545,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17544,
                  "mutability": "mutable",
                  "name": "interfaceId",
                  "nameLocation": "809:11:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 17566,
                  "src": "802:18:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes4",
                    "typeString": "bytes4"
                  },
                  "typeName": {
                    "id": 17543,
                    "name": "bytes4",
                    "nodeType": "ElementaryTypeName",
                    "src": "802:6:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes4",
                      "typeString": "bytes4"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "801:20:64"
            },
            "returnParameters": {
              "id": 17552,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17551,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17566,
                  "src": "935:4:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 17550,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "935:4:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "934:6:64"
            },
            "scope": 17715,
            "src": "775:300:64",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17578,
              "nodeType": "Block",
              "src": "1120:63:64",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 17575,
                        "name": "to",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17568,
                        "src": "1173:2:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "arguments": [
                          {
                            "id": 17572,
                            "name": "_creator",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 17519,
                            "src": "1149:8:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          ],
                          "id": 17571,
                          "name": "IERC721CreatorCore",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 15407,
                          "src": "1130:18:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_IERC721CreatorCore_$15407_$",
                            "typeString": "type(contract IERC721CreatorCore)"
                          }
                        },
                        "id": 17573,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1130:28:64",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC721CreatorCore_$15407",
                          "typeString": "contract IERC721CreatorCore"
                        }
                      },
                      "id": 17574,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1159:13:64",
                      "memberName": "mintExtension",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 15337,
                      "src": "1130:42:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$returns$_t_uint256_$",
                        "typeString": "function (address) external returns (uint256)"
                      }
                    },
                    "id": 17576,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1130:46:64",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 17577,
                  "nodeType": "ExpressionStatement",
                  "src": "1130:46:64"
                }
              ]
            },
            "functionSelector": "c70c875a",
            "id": 17579,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "testMint",
            "nameLocation": "1090:8:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17569,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17568,
                  "mutability": "mutable",
                  "name": "to",
                  "nameLocation": "1107:2:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 17579,
                  "src": "1099:10:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 17567,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1099:7:64",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1098:12:64"
            },
            "returnParameters": {
              "id": 17570,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1120:0:64"
            },
            "scope": 17715,
            "src": "1081:102:64",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "body": {
              "id": 17588,
              "nodeType": "Block",
              "src": "1237:42:64",
              "statements": [
                {
                  "expression": {
                    "id": 17586,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 17584,
                      "name": "_approveEnabled",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17515,
                      "src": "1247:15:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 17585,
                      "name": "enabled",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17581,
                      "src": "1265:7:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "1247:25:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 17587,
                  "nodeType": "ExpressionStatement",
                  "src": "1247:25:64"
                }
              ]
            },
            "functionSelector": "d9accf92",
            "id": 17589,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setApproveEnabled",
            "nameLocation": "1198:17:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17582,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17581,
                  "mutability": "mutable",
                  "name": "enabled",
                  "nameLocation": "1221:7:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 17589,
                  "src": "1216:12:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 17580,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1216:4:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1215:14:64"
            },
            "returnParameters": {
              "id": 17583,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1237:0:64"
            },
            "scope": 17715,
            "src": "1189:90:64",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "body": {
              "id": 17598,
              "nodeType": "Block",
              "src": "1334:32:64",
              "statements": [
                {
                  "expression": {
                    "id": 17596,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 17594,
                      "name": "_tokenURI",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17517,
                      "src": "1344:9:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_storage",
                        "typeString": "string storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 17595,
                      "name": "uri",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 17591,
                      "src": "1356:3:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_string_calldata_ptr",
                        "typeString": "string calldata"
                      }
                    },
                    "src": "1344:15:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "id": 17597,
                  "nodeType": "ExpressionStatement",
                  "src": "1344:15:64"
                }
              ]
            },
            "functionSelector": "e0df5b6f",
            "id": 17599,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setTokenURI",
            "nameLocation": "1294:11:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17592,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17591,
                  "mutability": "mutable",
                  "name": "uri",
                  "nameLocation": "1322:3:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 17599,
                  "src": "1306:19:64",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_calldata_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 17590,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1306:6:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1305:21:64"
            },
            "returnParameters": {
              "id": 17593,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1334:0:64"
            },
            "scope": 17715,
            "src": "1285:81:64",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              16482
            ],
            "body": {
              "id": 17615,
              "nodeType": "Block",
              "src": "1479:39:64",
              "statements": [
                {
                  "expression": {
                    "id": 17613,
                    "name": "_approveEnabled",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 17515,
                    "src": "1496:15:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 17612,
                  "id": 17614,
                  "nodeType": "Return",
                  "src": "1489:22:64"
                }
              ]
            },
            "functionSelector": "5e6a6f8a",
            "id": 17616,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "approveTransfer",
            "nameLocation": "1381:15:64",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 17609,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1455:8:64"
            },
            "parameters": {
              "id": 17608,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17601,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17616,
                  "src": "1397:7:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 17600,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1397:7:64",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17603,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17616,
                  "src": "1406:7:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 17602,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1406:7:64",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17605,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17616,
                  "src": "1415:7:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 17604,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1415:7:64",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17607,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17616,
                  "src": "1424:7:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17606,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1424:7:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1396:36:64"
            },
            "returnParameters": {
              "id": 17612,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17611,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17616,
                  "src": "1473:4:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 17610,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1473:4:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1472:6:64"
            },
            "scope": 17715,
            "src": "1372:146:64",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              16590
            ],
            "body": {
              "id": 17635,
              "nodeType": "Block",
              "src": "1623:82:64",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 17629,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 17627,
                          "name": "creator",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17618,
                          "src": "1641:7:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "id": 17628,
                          "name": "_creator",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17519,
                          "src": "1652:8:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "1641:19:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "496e76616c6964",
                        "id": 17630,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1662:9:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c84d91f537f720db0d8ff8472db06e97a59d22ac83366d0af861134338d0e345",
                          "typeString": "literal_string \"Invalid\""
                        },
                        "value": "Invalid"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c84d91f537f720db0d8ff8472db06e97a59d22ac83366d0af861134338d0e345",
                          "typeString": "literal_string \"Invalid\""
                        }
                      ],
                      "id": 17626,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "1633:7:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 17631,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1633:39:64",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17632,
                  "nodeType": "ExpressionStatement",
                  "src": "1633:39:64"
                },
                {
                  "expression": {
                    "id": 17633,
                    "name": "_tokenURI",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 17517,
                    "src": "1689:9:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage",
                      "typeString": "string storage ref"
                    }
                  },
                  "functionReturnParameters": 17625,
                  "id": 17634,
                  "nodeType": "Return",
                  "src": "1682:16:64"
                }
              ]
            },
            "functionSelector": "e9dc6375",
            "id": 17636,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "tokenURI",
            "nameLocation": "1533:8:64",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 17622,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1590:8:64"
            },
            "parameters": {
              "id": 17621,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17618,
                  "mutability": "mutable",
                  "name": "creator",
                  "nameLocation": "1550:7:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 17636,
                  "src": "1542:15:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 17617,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1542:7:64",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17620,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17636,
                  "src": "1559:7:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17619,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1559:7:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1541:26:64"
            },
            "returnParameters": {
              "id": 17625,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17624,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17636,
                  "src": "1608:13:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 17623,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "1608:6:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1607:15:64"
            },
            "scope": 17715,
            "src": "1524:181:64",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "body": {
              "id": 17656,
              "nodeType": "Block",
              "src": "1825:71:64",
              "statements": [
                {
                  "expression": {
                    "id": 17654,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 17647,
                        "name": "_royaltyInfo",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17524,
                        "src": "1835:12:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_RoyaltyInfo_$17531_storage_$",
                          "typeString": "mapping(uint256 => struct MockERC721CreatorExtensionOverride.RoyaltyInfo storage ref)"
                        }
                      },
                      "id": 17649,
                      "indexExpression": {
                        "id": 17648,
                        "name": "tokenId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17638,
                        "src": "1848:7:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "1835:21:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_RoyaltyInfo_$17531_storage",
                        "typeString": "struct MockERC721CreatorExtensionOverride.RoyaltyInfo storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 17651,
                          "name": "receivers",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17641,
                          "src": "1871:9:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr",
                            "typeString": "address payable[] memory"
                          }
                        },
                        {
                          "id": 17652,
                          "name": "values",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17644,
                          "src": "1882:6:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                            "typeString": "uint256[] memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr",
                            "typeString": "address payable[] memory"
                          },
                          {
                            "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                            "typeString": "uint256[] memory"
                          }
                        ],
                        "id": 17650,
                        "name": "RoyaltyInfo",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 17531,
                        "src": "1859:11:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_struct$_RoyaltyInfo_$17531_storage_ptr_$",
                          "typeString": "type(struct MockERC721CreatorExtensionOverride.RoyaltyInfo storage pointer)"
                        }
                      },
                      "id": 17653,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "structConstructorCall",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1859:30:64",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_RoyaltyInfo_$17531_memory_ptr",
                        "typeString": "struct MockERC721CreatorExtensionOverride.RoyaltyInfo memory"
                      }
                    },
                    "src": "1835:54:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_RoyaltyInfo_$17531_storage",
                      "typeString": "struct MockERC721CreatorExtensionOverride.RoyaltyInfo storage ref"
                    }
                  },
                  "id": 17655,
                  "nodeType": "ExpressionStatement",
                  "src": "1835:54:64"
                }
              ]
            },
            "functionSelector": "dc83b1b9",
            "id": 17657,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "setRoyaltyOverrides",
            "nameLocation": "1720:19:64",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 17645,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17638,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "1748:7:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 17657,
                  "src": "1740:15:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17637,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1740:7:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17641,
                  "mutability": "mutable",
                  "name": "receivers",
                  "nameLocation": "1782:9:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 17657,
                  "src": "1757:34:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr",
                    "typeString": "address payable[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 17639,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "1757:15:64",
                      "stateMutability": "payable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "id": 17640,
                    "nodeType": "ArrayTypeName",
                    "src": "1757:17:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                      "typeString": "address payable[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17644,
                  "mutability": "mutable",
                  "name": "values",
                  "nameLocation": "1810:6:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 17657,
                  "src": "1793:23:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 17642,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "1793:7:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 17643,
                    "nodeType": "ArrayTypeName",
                    "src": "1793:9:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1739:78:64"
            },
            "returnParameters": {
              "id": 17646,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1825:0:64"
            },
            "scope": 17715,
            "src": "1711:185:64",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              15785
            ],
            "body": {
              "id": 17713,
              "nodeType": "Block",
              "src": "2034:320:64",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 17674,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 17672,
                          "name": "creator",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17659,
                          "src": "2052:7:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "id": 17673,
                          "name": "_creator",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 17519,
                          "src": "2063:8:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "2052:19:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "496e76616c6964",
                        "id": 17675,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2073:9:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c84d91f537f720db0d8ff8472db06e97a59d22ac83366d0af861134338d0e345",
                          "typeString": "literal_string \"Invalid\""
                        },
                        "value": "Invalid"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c84d91f537f720db0d8ff8472db06e97a59d22ac83366d0af861134338d0e345",
                          "typeString": "literal_string \"Invalid\""
                        }
                      ],
                      "id": 17671,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "2044:7:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 17676,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2044:39:64",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 17677,
                  "nodeType": "ExpressionStatement",
                  "src": "2044:39:64"
                },
                {
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 17684,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "expression": {
                        "expression": {
                          "baseExpression": {
                            "id": 17678,
                            "name": "_royaltyInfo",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 17524,
                            "src": "2098:12:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_RoyaltyInfo_$17531_storage_$",
                              "typeString": "mapping(uint256 => struct MockERC721CreatorExtensionOverride.RoyaltyInfo storage ref)"
                            }
                          },
                          "id": 17680,
                          "indexExpression": {
                            "id": 17679,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 17661,
                            "src": "2111:7:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2098:21:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RoyaltyInfo_$17531_storage",
                            "typeString": "struct MockERC721CreatorExtensionOverride.RoyaltyInfo storage ref"
                          }
                        },
                        "id": 17681,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberLocation": "2120:10:64",
                        "memberName": "recipients",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 17527,
                        "src": "2098:32:64",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_address_payable_$dyn_storage",
                          "typeString": "address payable[] storage ref"
                        }
                      },
                      "id": 17682,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2131:6:64",
                      "memberName": "length",
                      "nodeType": "MemberAccess",
                      "src": "2098:39:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": ">",
                    "rightExpression": {
                      "hexValue": "30",
                      "id": 17683,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2140:1:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "src": "2098:43:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 17711,
                    "nodeType": "Block",
                    "src": "2272:76:64",
                    "statements": [
                      {
                        "expression": {
                          "components": [
                            {
                              "arguments": [
                                {
                                  "hexValue": "30",
                                  "id": 17702,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "2316:1:64",
                                  "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": 17701,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "NewExpression",
                                "src": "2294:21:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_objectcreation_pure$_t_uint256_$returns$_t_array$_t_address_payable_$dyn_memory_ptr_$",
                                  "typeString": "function (uint256) pure returns (address payable[] memory)"
                                },
                                "typeName": {
                                  "baseType": {
                                    "id": 17699,
                                    "name": "address",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "2298:15:64",
                                    "stateMutability": "payable",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address_payable",
                                      "typeString": "address payable"
                                    }
                                  },
                                  "id": 17700,
                                  "nodeType": "ArrayTypeName",
                                  "src": "2298:17:64",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                                    "typeString": "address payable[]"
                                  }
                                }
                              },
                              "id": 17703,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2294:24:64",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr",
                                "typeString": "address payable[] memory"
                              }
                            },
                            {
                              "arguments": [
                                {
                                  "hexValue": "30",
                                  "id": 17707,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": true,
                                  "kind": "number",
                                  "lValueRequested": false,
                                  "nodeType": "Literal",
                                  "src": "2334:1:64",
                                  "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": 17706,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "NewExpression",
                                "src": "2320:13:64",
                                "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": 17704,
                                    "name": "uint256",
                                    "nodeType": "ElementaryTypeName",
                                    "src": "2324:7:64",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "id": 17705,
                                  "nodeType": "ArrayTypeName",
                                  "src": "2324:9:64",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                                    "typeString": "uint256[]"
                                  }
                                }
                              },
                              "id": 17708,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2320:16:64",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            }
                          ],
                          "id": 17709,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "2293:44:64",
                          "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": 17670,
                        "id": 17710,
                        "nodeType": "Return",
                        "src": "2286:51:64"
                      }
                    ]
                  },
                  "id": 17712,
                  "nodeType": "IfStatement",
                  "src": "2094:254:64",
                  "trueBody": {
                    "id": 17698,
                    "nodeType": "Block",
                    "src": "2143:123:64",
                    "statements": [
                      {
                        "assignments": [
                          17687
                        ],
                        "declarations": [
                          {
                            "constant": false,
                            "id": 17687,
                            "mutability": "mutable",
                            "name": "info",
                            "nameLocation": "2176:4:64",
                            "nodeType": "VariableDeclaration",
                            "scope": 17698,
                            "src": "2157:23:64",
                            "stateVariable": false,
                            "storageLocation": "memory",
                            "typeDescriptions": {
                              "typeIdentifier": "t_struct$_RoyaltyInfo_$17531_memory_ptr",
                              "typeString": "struct MockERC721CreatorExtensionOverride.RoyaltyInfo"
                            },
                            "typeName": {
                              "id": 17686,
                              "nodeType": "UserDefinedTypeName",
                              "pathNode": {
                                "id": 17685,
                                "name": "RoyaltyInfo",
                                "nameLocations": [
                                  "2157:11:64"
                                ],
                                "nodeType": "IdentifierPath",
                                "referencedDeclaration": 17531,
                                "src": "2157:11:64"
                              },
                              "referencedDeclaration": 17531,
                              "src": "2157:11:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_struct$_RoyaltyInfo_$17531_storage_ptr",
                                "typeString": "struct MockERC721CreatorExtensionOverride.RoyaltyInfo"
                              }
                            },
                            "visibility": "internal"
                          }
                        ],
                        "id": 17691,
                        "initialValue": {
                          "baseExpression": {
                            "id": 17688,
                            "name": "_royaltyInfo",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 17524,
                            "src": "2183:12:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_mapping$_t_uint256_$_t_struct$_RoyaltyInfo_$17531_storage_$",
                              "typeString": "mapping(uint256 => struct MockERC721CreatorExtensionOverride.RoyaltyInfo storage ref)"
                            }
                          },
                          "id": 17690,
                          "indexExpression": {
                            "id": 17689,
                            "name": "tokenId",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 17661,
                            "src": "2196:7:64",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "isConstant": false,
                          "isLValue": true,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "IndexAccess",
                          "src": "2183:21:64",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_RoyaltyInfo_$17531_storage",
                            "typeString": "struct MockERC721CreatorExtensionOverride.RoyaltyInfo storage ref"
                          }
                        },
                        "nodeType": "VariableDeclarationStatement",
                        "src": "2157:47:64"
                      },
                      {
                        "expression": {
                          "components": [
                            {
                              "expression": {
                                "id": 17692,
                                "name": "info",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 17687,
                                "src": "2226:4:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_RoyaltyInfo_$17531_memory_ptr",
                                  "typeString": "struct MockERC721CreatorExtensionOverride.RoyaltyInfo memory"
                                }
                              },
                              "id": 17693,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "2231:10:64",
                              "memberName": "recipients",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 17527,
                              "src": "2226:15:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr",
                                "typeString": "address payable[] memory"
                              }
                            },
                            {
                              "expression": {
                                "id": 17694,
                                "name": "info",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 17687,
                                "src": "2243:4:64",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_struct$_RoyaltyInfo_$17531_memory_ptr",
                                  "typeString": "struct MockERC721CreatorExtensionOverride.RoyaltyInfo memory"
                                }
                              },
                              "id": 17695,
                              "isConstant": false,
                              "isLValue": true,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberLocation": "2248:6:64",
                              "memberName": "values",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 17530,
                              "src": "2243:11:64",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            }
                          ],
                          "id": 17696,
                          "isConstant": false,
                          "isInlineArray": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "nodeType": "TupleExpression",
                          "src": "2225:30:64",
                          "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": 17670,
                        "id": 17697,
                        "nodeType": "Return",
                        "src": "2218:37:64"
                      }
                    ]
                  }
                }
              ]
            },
            "functionSelector": "9ca7dc7a",
            "id": 17714,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getRoyalties",
            "nameLocation": "1911:12:64",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 17663,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1967:8:64"
            },
            "parameters": {
              "id": 17662,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17659,
                  "mutability": "mutable",
                  "name": "creator",
                  "nameLocation": "1932:7:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 17714,
                  "src": "1924:15:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 17658,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1924:7:64",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17661,
                  "mutability": "mutable",
                  "name": "tokenId",
                  "nameLocation": "1949:7:64",
                  "nodeType": "VariableDeclaration",
                  "scope": 17714,
                  "src": "1941:15:64",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 17660,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1941:7:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1923:34:64"
            },
            "returnParameters": {
              "id": 17670,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 17666,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17714,
                  "src": "1990:24:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_address_payable_$dyn_memory_ptr",
                    "typeString": "address payable[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 17664,
                      "name": "address",
                      "nodeType": "ElementaryTypeName",
                      "src": "1990:15:64",
                      "stateMutability": "payable",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "id": 17665,
                    "nodeType": "ArrayTypeName",
                    "src": "1990:17:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_address_payable_$dyn_storage_ptr",
                      "typeString": "address payable[]"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 17669,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 17714,
                  "src": "2016:16:64",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 17667,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "2016:7:64",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 17668,
                    "nodeType": "ArrayTypeName",
                    "src": "2016:9:64",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1989:44:64"
            },
            "scope": 17715,
            "src": "1902:452:64",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 17716,
        "src": "281:2075:64",
        "usedErrors": []
      }
    ],
    "src": "33:2324:64"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.19+commit.7dd6d404.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.12",
  "updatedAt": "2023-03-22T17:07:39.811Z",
  "devdoc": {
    "kind": "dev",
    "methods": {
      "approveAdmin(address)": {
        "details": "See {IAdminControl-approveAdmin}."
      },
      "getAdmins()": {
        "details": "See {IAdminControl-getAdmins}."
      },
      "getRoyalties(address,uint256)": {
        "details": "See {ICreatorExtensionRoyalties-getRoyalties}"
      },
      "isAdmin(address)": {
        "details": "See {IAdminControl-isAdmin}."
      },
      "owner()": {
        "details": "Returns the address of the current owner."
      },
      "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}."
      },
      "setApproveTransfer(address,bool)": {
        "details": "See {IERC721CreatorExtensionApproveTransfer-setApproveTransfer}"
      },
      "supportsInterface(bytes4)": {
        "details": "See {IERC165-supportsInterface}."
      },
      "transferOwnership(address)": {
        "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
      }
    },
    "version": 1
  },
  "userdoc": {
    "kind": "user",
    "methods": {},
    "version": 1
  }
}