{
  "contractName": "TrustedIssuersRegistry",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "contract IClaimIssuer",
          "name": "trustedIssuer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "claimTopics",
          "type": "uint256[]"
        }
      ],
      "name": "ClaimTopicsUpdated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "contract IClaimIssuer",
          "name": "trustedIssuer",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256[]",
          "name": "claimTopics",
          "type": "uint256[]"
        }
      ],
      "name": "TrustedIssuerAdded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "contract IClaimIssuer",
          "name": "trustedIssuer",
          "type": "address"
        }
      ],
      "name": "TrustedIssuerRemoved",
      "type": "event"
    },
    {
      "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": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IClaimIssuer",
          "name": "_trustedIssuer",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "_claimTopics",
          "type": "uint256[]"
        }
      ],
      "name": "addTrustedIssuer",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IClaimIssuer",
          "name": "_trustedIssuer",
          "type": "address"
        }
      ],
      "name": "removeTrustedIssuer",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IClaimIssuer",
          "name": "_trustedIssuer",
          "type": "address"
        },
        {
          "internalType": "uint256[]",
          "name": "_claimTopics",
          "type": "uint256[]"
        }
      ],
      "name": "updateIssuerClaimTopics",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getTrustedIssuers",
      "outputs": [
        {
          "internalType": "contract IClaimIssuer[]",
          "name": "",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_issuer",
          "type": "address"
        }
      ],
      "name": "isTrustedIssuer",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "contract IClaimIssuer",
          "name": "_trustedIssuer",
          "type": "address"
        }
      ],
      "name": "getTrustedIssuerClaimTopics",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_issuer",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_claimTopic",
          "type": "uint256"
        }
      ],
      "name": "hasClaimTopic",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnershipOnIssuersRegistryContract",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IClaimIssuer\",\"name\":\"trustedIssuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"claimTopics\",\"type\":\"uint256[]\"}],\"name\":\"ClaimTopicsUpdated\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IClaimIssuer\",\"name\":\"trustedIssuer\",\"type\":\"address\"},{\"indexed\":false,\"internalType\":\"uint256[]\",\"name\":\"claimTopics\",\"type\":\"uint256[]\"}],\"name\":\"TrustedIssuerAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"contract IClaimIssuer\",\"name\":\"trustedIssuer\",\"type\":\"address\"}],\"name\":\"TrustedIssuerRemoved\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"contract IClaimIssuer\",\"name\":\"_trustedIssuer\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"_claimTopics\",\"type\":\"uint256[]\"}],\"name\":\"addTrustedIssuer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IClaimIssuer\",\"name\":\"_trustedIssuer\",\"type\":\"address\"}],\"name\":\"getTrustedIssuerClaimTopics\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getTrustedIssuers\",\"outputs\":[{\"internalType\":\"contract IClaimIssuer[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_issuer\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_claimTopic\",\"type\":\"uint256\"}],\"name\":\"hasClaimTopic\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_issuer\",\"type\":\"address\"}],\"name\":\"isTrustedIssuer\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IClaimIssuer\",\"name\":\"_trustedIssuer\",\"type\":\"address\"}],\"name\":\"removeTrustedIssuer\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"renounceOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnership\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_newOwner\",\"type\":\"address\"}],\"name\":\"transferOwnershipOnIssuersRegistryContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"contract IClaimIssuer\",\"name\":\"_trustedIssuer\",\"type\":\"address\"},{\"internalType\":\"uint256[]\",\"name\":\"_claimTopics\",\"type\":\"uint256[]\"}],\"name\":\"updateIssuerClaimTopics\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"addTrustedIssuer(address,uint256[])\":{\"details\":\"See {ITrustedIssuersRegistry-addTrustedIssuer}.\"},\"getTrustedIssuerClaimTopics(address)\":{\"details\":\"See {ITrustedIssuersRegistry-getTrustedIssuerClaimTopics}.\"},\"getTrustedIssuers()\":{\"details\":\"See {ITrustedIssuersRegistry-getTrustedIssuers}.\"},\"hasClaimTopic(address,uint256)\":{\"details\":\"See {ITrustedIssuersRegistry-hasClaimTopic}.\"},\"isTrustedIssuer(address)\":{\"details\":\"See {ITrustedIssuersRegistry-isTrustedIssuer}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeTrustedIssuer(address)\":{\"details\":\"See {ITrustedIssuersRegistry-removeTrustedIssuer}.\"},\"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.\"},\"transferOwnership(address)\":{\"details\":\"Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner.\"},\"transferOwnershipOnIssuersRegistryContract(address)\":{\"details\":\"See {ITrustedIssuersRegistry-transferOwnershipOnIssuersRegistryContract}.\"},\"updateIssuerClaimTopics(address,uint256[])\":{\"details\":\"See {ITrustedIssuersRegistry-updateIssuerClaimTopics}.\"}},\"stateVariables\":{\"trustedIssuerClaimTopics\":{\"details\":\"Mapping between a trusted issuer index and its corresponding claimTopics.\"},\"trustedIssuers\":{\"details\":\"Array containing all TrustedIssuers identity contract address.\"}},\"version\":1},\"userdoc\":{\"events\":{\"ClaimTopicsUpdated(address,uint256[])\":{\"notice\":\"this event is emitted when the set of claim topics is changed for a given trusted issuer.  the event is emitted by the updateIssuerClaimTopics function  `trustedIssuer` is the address of the trusted issuer's ClaimIssuer contract  `claimTopics` is the set of claims that the trusted issuer is allowed to emit\"},\"TrustedIssuerAdded(address,uint256[])\":{\"notice\":\"this event is emitted when a trusted issuer is added in the registry.  the event is emitted by the addTrustedIssuer function  `trustedIssuer` is the address of the trusted issuer's ClaimIssuer contract  `claimTopics` is the set of claims that the trusted issuer is allowed to emit\"},\"TrustedIssuerRemoved(address)\":{\"notice\":\"this event is emitted when a trusted issuer is removed from the registry.  the event is emitted by the removeTrustedIssuer function  `trustedIssuer` is the address of the trusted issuer's ClaimIssuer contract\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/registry/TrustedIssuersRegistry.sol\":\"TrustedIssuersRegistry\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10},\"remappings\":[]},\"sources\":{\"@onchain-id/solidity/contracts/interface/IClaimIssuer.sol\":{\"keccak256\":\"0xd0493be7cb7342962b46f8e2afdca4614ea0fe34a7f493b2da9db7d361a9042c\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://105232aae24e3d0fcb4c80c00793b61b6019f6127c0ec6f9e3082ae01b2e778b\",\"dweb:/ipfs/QmV5C1wbq7H5H6DiakafSX5agAAP6rQSZ5qq7Qgq6VLkXo\"]},\"@onchain-id/solidity/contracts/interface/IERC734.sol\":{\"keccak256\":\"0x3302de9e9fe7a548cb7395b6fda38f952f6a6d1c599dfeee181a1ef80741fc1d\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://fc9f00e5b2f1523fecf52b1a833e9263a53edbebb7d1458f9004cfd41dd0402e\",\"dweb:/ipfs/QmWcNcVQrg66KeQz39jPgJun7jF3CbdJKHQa19q97n5Hzb\"]},\"@onchain-id/solidity/contracts/interface/IERC735.sol\":{\"keccak256\":\"0x3b77ce6012a96cf0075197cdeb1b98b66ca1722ef23241e40ba6185f03bf4584\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://766e139f0c3cc0c6489561e75df0d8eab8c277f90009e4fa19add4f22bb40d82\",\"dweb:/ipfs/QmcbAReZn9nLcnYn9AHiDmcYJ42JqAU5QSy4dKhUcJUnjy\"]},\"@onchain-id/solidity/contracts/interface/IIdentity.sol\":{\"keccak256\":\"0xdcefbe2a850f9f43e959b9f7ed93fd5b35f29ff3dfbfaac7530af737c9eba7c6\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://2e887c7cc67fdb2710c48bed22dbb27880f6dfb84ee93178ad4fcd659099cb96\",\"dweb:/ipfs/QmUuDEsZJC7uQQEErmuNJzePsNgHiTDdS2TuMzG1GRqrC3\"]},\"@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\"]},\"project:/contracts/registry/ITrustedIssuersRegistry.sol\":{\"keccak256\":\"0x01af20f2f537db3122c60b7c6e60e5036e07c673ef9762428b42129f65fcbc60\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://28f514b876c975777fe84bdb9f96ec5c687e4e4ff5d2b14961ba61affc57d46c\",\"dweb:/ipfs/QmdbVRsg1Q71PVHYxy1r7e5MeiMN5hHHDD8vRnXBSr8JiV\"]},\"project:/contracts/registry/TrustedIssuersRegistry.sol\":{\"keccak256\":\"0xeb871277304a1dd95485ea678ab4183829fb8ea073d53db7204fe8a8923654d8\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://7add52f3520dfa9567ee11da9dae21728d6c9b74d909fd08728c6d3c80cb5aa9\",\"dweb:/ipfs/QmWDrJdo4DbFFNnv1qudieymctfp5pHBgHvh6HwW4DM6Zc\"]}},\"version\":1}",
  "bytecode": "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b610c258061007e6000396000f3fe608060405234801561001057600080fd5b50600436106100995760003560e01c806304bc7e841461009e57806334a89987146100b3578063715018a6146100db5780638da5cb5b146100e35780639f63ea9814610103578063b93d28eb14610116578063c28fb27814610129578063d9dd24c514610149578063e36dce281461015e578063ef2ed1a414610171578063f2fde38b14610184575b600080fd5b6100b16100ac3660046109b6565b610197565b005b6100c66100c1366004610a3d565b610297565b60405190151581526020015b60405180910390f35b6100b1610357565b6100eb61036b565b6040516001600160a01b0390911681526020016100d2565b6100b16101113660046109b6565b61037a565b6100b1610124366004610a69565b6104de565b61013c610137366004610a69565b61067c565b6040516100d29190610a8d565b61015161071f565b6040516100d29190610ad1565b6100b161016c366004610a69565b610781565b6100c661017f366004610a69565b610795565b6100b1610192366004610a69565b610802565b61019f610878565b6001600160a01b03831660009081526002602052604081205490036101df5760405162461bcd60e51b81526004016101d690610b12565b60405180910390fd5b8061022b5760405162461bcd60e51b815260206004820152601c60248201527b636c61696d20746f706963732063616e6e6f7420626520656d70747960201b60448201526064016101d6565b6001600160a01b038316600090815260026020526040902061024e908383610927565b50826001600160a01b03167fec753cfc52044f61676f18a11e500093a9f2b1cd5e4942bc476f2b0438159bcf838360405161028a929190610b48565b60405180910390a2505050565b6001600160a01b03821660009081526002602090815260408083208054825181850281018501909352808352928492919084908301828280156102f957602002820191906000526020600020905b8154815260200190600101908083116102e5575b5050505050905060005b82811015610349578482828151811061031e5761031e610b81565b6020026020010151036103375760019350505050610351565b8061034181610bad565b915050610303565b506000925050505b92915050565b61035f610878565b61036960006108d7565b565b6000546001600160a01b031690565b610382610878565b6001600160a01b038316600090815260026020526040902054156103e85760405162461bcd60e51b815260206004820152601d60248201527f747275737465642049737375657220616c72656164792065786973747300000060448201526064016101d6565b806104415760405162461bcd60e51b8152602060048201526024808201527f7472757374656420636c61696d20746f706963732063616e6e6f7420626520656044820152636d70747960e01b60648201526084016101d6565b600180548082019091557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b03851690811790915560009081526002602052604090206104a2908383610927565b50826001600160a01b03167ffedc33fd34859594822c0ff6f3f4f9fc279cc6d5cae53068f706a088e4500872838360405161028a929190610b48565b6104e6610878565b6001600160a01b038116600090815260026020526040812054900361051d5760405162461bcd60e51b81526004016101d690610b12565b60015460005b8181101561062257826001600160a01b03166001828154811061054857610548610b81565b6000918252602090912001546001600160a01b03160361061057600161056e8184610bc6565b8154811061057e5761057e610b81565b600091825260209091200154600180546001600160a01b0390921691839081106105aa576105aa610b81565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060018054806105e9576105e9610bd9565b600082815260209020810160001990810180546001600160a01b0319169055019055610622565b8061061a81610bad565b915050610523565b506001600160a01b038216600090815260026020526040812061064491610972565b6040516001600160a01b038316907f2214ded40113cc3fb63fc206cafee88270b0a903dac7245d54efdde30ebb032190600090a25050565b6001600160a01b038116600090815260026020526040812054606091036106b55760405162461bcd60e51b81526004016101d690610b12565b6001600160a01b0382166000908152600260209081526040918290208054835181840281018401909452808452909183018282801561071357602002820191906000526020600020905b8154815260200190600101908083116106ff575b50505050509050919050565b6060600180548060200260200160405190810160405280929190818152602001828054801561077757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610759575b5050505050905090565b610789610878565b61079281610802565b50565b600154600090815b818110156107f857836001600160a01b0316600182815481106107c2576107c2610b81565b6000918252602090912001546001600160a01b0316036107e6575060019392505050565b806107f081610bad565b91505061079d565b5060009392505050565b61080a610878565b6001600160a01b03811661086f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101d6565b610792816108d7565b3361088161036b565b6001600160a01b0316146103695760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101d6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054828255906000526020600020908101928215610962579160200282015b82811115610962578235825591602001919060010190610947565b5061096e92915061098c565b5090565b508054600082559060005260206000209081019061079291905b5b8082111561096e576000815560010161098d565b6001600160a01b038116811461079257600080fd5b6000806000604084860312156109cb57600080fd5b83356109d6816109a1565b925060208401356001600160401b03808211156109f257600080fd5b818601915086601f830112610a0657600080fd5b813581811115610a1557600080fd5b8760208260051b8501011115610a2a57600080fd5b6020830194508093505050509250925092565b60008060408385031215610a5057600080fd5b8235610a5b816109a1565b946020939093013593505050565b600060208284031215610a7b57600080fd5b8135610a86816109a1565b9392505050565b6020808252825182820181905260009190848201906040850190845b81811015610ac557835183529284019291840191600101610aa9565b50909695505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610ac55783516001600160a01b031683529284019291840191600101610aed565b6020808252601c908201527b1d1c9d5cdd195908125cdcdd595c88191bd95cdb89dd08195e1a5cdd60221b604082015260600190565b6020808252810182905260006001600160fb1b03831115610b6857600080fd5b8260051b80856040850137919091016040019392505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201610bbf57610bbf610b97565b5060010190565b8181038181111561035157610351610b97565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220139504a27f83c102617d3e819ffa688d5017e003b7b379771d195c703df093f464736f6c63430008110033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b50600436106100995760003560e01c806304bc7e841461009e57806334a89987146100b3578063715018a6146100db5780638da5cb5b146100e35780639f63ea9814610103578063b93d28eb14610116578063c28fb27814610129578063d9dd24c514610149578063e36dce281461015e578063ef2ed1a414610171578063f2fde38b14610184575b600080fd5b6100b16100ac3660046109b6565b610197565b005b6100c66100c1366004610a3d565b610297565b60405190151581526020015b60405180910390f35b6100b1610357565b6100eb61036b565b6040516001600160a01b0390911681526020016100d2565b6100b16101113660046109b6565b61037a565b6100b1610124366004610a69565b6104de565b61013c610137366004610a69565b61067c565b6040516100d29190610a8d565b61015161071f565b6040516100d29190610ad1565b6100b161016c366004610a69565b610781565b6100c661017f366004610a69565b610795565b6100b1610192366004610a69565b610802565b61019f610878565b6001600160a01b03831660009081526002602052604081205490036101df5760405162461bcd60e51b81526004016101d690610b12565b60405180910390fd5b8061022b5760405162461bcd60e51b815260206004820152601c60248201527b636c61696d20746f706963732063616e6e6f7420626520656d70747960201b60448201526064016101d6565b6001600160a01b038316600090815260026020526040902061024e908383610927565b50826001600160a01b03167fec753cfc52044f61676f18a11e500093a9f2b1cd5e4942bc476f2b0438159bcf838360405161028a929190610b48565b60405180910390a2505050565b6001600160a01b03821660009081526002602090815260408083208054825181850281018501909352808352928492919084908301828280156102f957602002820191906000526020600020905b8154815260200190600101908083116102e5575b5050505050905060005b82811015610349578482828151811061031e5761031e610b81565b6020026020010151036103375760019350505050610351565b8061034181610bad565b915050610303565b506000925050505b92915050565b61035f610878565b61036960006108d7565b565b6000546001600160a01b031690565b610382610878565b6001600160a01b038316600090815260026020526040902054156103e85760405162461bcd60e51b815260206004820152601d60248201527f747275737465642049737375657220616c72656164792065786973747300000060448201526064016101d6565b806104415760405162461bcd60e51b8152602060048201526024808201527f7472757374656420636c61696d20746f706963732063616e6e6f7420626520656044820152636d70747960e01b60648201526084016101d6565b600180548082019091557fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60180546001600160a01b0319166001600160a01b03851690811790915560009081526002602052604090206104a2908383610927565b50826001600160a01b03167ffedc33fd34859594822c0ff6f3f4f9fc279cc6d5cae53068f706a088e4500872838360405161028a929190610b48565b6104e6610878565b6001600160a01b038116600090815260026020526040812054900361051d5760405162461bcd60e51b81526004016101d690610b12565b60015460005b8181101561062257826001600160a01b03166001828154811061054857610548610b81565b6000918252602090912001546001600160a01b03160361061057600161056e8184610bc6565b8154811061057e5761057e610b81565b600091825260209091200154600180546001600160a01b0390921691839081106105aa576105aa610b81565b9060005260206000200160006101000a8154816001600160a01b0302191690836001600160a01b0316021790555060018054806105e9576105e9610bd9565b600082815260209020810160001990810180546001600160a01b0319169055019055610622565b8061061a81610bad565b915050610523565b506001600160a01b038216600090815260026020526040812061064491610972565b6040516001600160a01b038316907f2214ded40113cc3fb63fc206cafee88270b0a903dac7245d54efdde30ebb032190600090a25050565b6001600160a01b038116600090815260026020526040812054606091036106b55760405162461bcd60e51b81526004016101d690610b12565b6001600160a01b0382166000908152600260209081526040918290208054835181840281018401909452808452909183018282801561071357602002820191906000526020600020905b8154815260200190600101908083116106ff575b50505050509050919050565b6060600180548060200260200160405190810160405280929190818152602001828054801561077757602002820191906000526020600020905b81546001600160a01b03168152600190910190602001808311610759575b5050505050905090565b610789610878565b61079281610802565b50565b600154600090815b818110156107f857836001600160a01b0316600182815481106107c2576107c2610b81565b6000918252602090912001546001600160a01b0316036107e6575060019392505050565b806107f081610bad565b91505061079d565b5060009392505050565b61080a610878565b6001600160a01b03811661086f5760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b60648201526084016101d6565b610792816108d7565b3361088161036b565b6001600160a01b0316146103695760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e657260448201526064016101d6565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b828054828255906000526020600020908101928215610962579160200282015b82811115610962578235825591602001919060010190610947565b5061096e92915061098c565b5090565b508054600082559060005260206000209081019061079291905b5b8082111561096e576000815560010161098d565b6001600160a01b038116811461079257600080fd5b6000806000604084860312156109cb57600080fd5b83356109d6816109a1565b925060208401356001600160401b03808211156109f257600080fd5b818601915086601f830112610a0657600080fd5b813581811115610a1557600080fd5b8760208260051b8501011115610a2a57600080fd5b6020830194508093505050509250925092565b60008060408385031215610a5057600080fd5b8235610a5b816109a1565b946020939093013593505050565b600060208284031215610a7b57600080fd5b8135610a86816109a1565b9392505050565b6020808252825182820181905260009190848201906040850190845b81811015610ac557835183529284019291840191600101610aa9565b50909695505050505050565b6020808252825182820181905260009190848201906040850190845b81811015610ac55783516001600160a01b031683529284019291840191600101610aed565b6020808252601c908201527b1d1c9d5cdd195908125cdcdd595c88191bd95cdb89dd08195e1a5cdd60221b604082015260600190565b6020808252810182905260006001600160fb1b03831115610b6857600080fd5b8260051b80856040850137919091016040019392505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b600060018201610bbf57610bbf610b97565b5060010190565b8181038181111561035157610351610b97565b634e487b7160e01b600052603160045260246000fdfea2646970667358221220139504a27f83c102617d3e819ffa688d5017e003b7b379771d195c703df093f464736f6c63430008110033",
  "immutableReferences": {},
  "generatedSources": [],
  "deployedGeneratedSources": [
    {
      "ast": {
        "nodeType": "YulBlock",
        "src": "0:6921:54",
        "statements": [
          {
            "nodeType": "YulBlock",
            "src": "6:3:54",
            "statements": []
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "73:86:54",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "137:16:54",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "146:1:54",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "149:1:54",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "139:6:54"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "139:12:54"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "139:12:54"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "96:5:54"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "107:5:54"
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "122:3:54",
                                        "type": "",
                                        "value": "160"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "127:1:54",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nodeType": "YulIdentifier",
                                      "src": "118:3:54"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "118:11:54"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "131:1:54",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "sub",
                                  "nodeType": "YulIdentifier",
                                  "src": "114:3:54"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "114:19:54"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "103:3:54"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "103:31:54"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "93:2:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "93:42:54"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "86:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "86:50:54"
                  },
                  "nodeType": "YulIf",
                  "src": "83:70:54"
                }
              ]
            },
            "name": "validator_revert_contract_IClaimIssuer",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "62:5:54",
                "type": ""
              }
            ],
            "src": "14:145:54"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "307:642:54",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "353:16:54",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "362:1:54",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "365:1:54",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "355:6:54"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "355:12:54"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "355:12:54"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "328:7:54"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "337:9:54"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "324:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "324:23:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "349:2:54",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "320:3:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "320:32:54"
                  },
                  "nodeType": "YulIf",
                  "src": "317:52:54"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "378:36:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "404:9:54"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "391:12:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "391:23:54"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "382:5:54",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "462:5:54"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_contract_IClaimIssuer",
                      "nodeType": "YulIdentifier",
                      "src": "423:38:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "423:45:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "423:45:54"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "477:15:54",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "487:5:54"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "477:6:54"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "501:46:54",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "532:9:54"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "543:2:54",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "528:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "528:18:54"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "515:12:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "515:32:54"
                  },
                  "variables": [
                    {
                      "name": "offset",
                      "nodeType": "YulTypedName",
                      "src": "505:6:54",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "556:28:54",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "574:2:54",
                            "type": "",
                            "value": "64"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "578:1:54",
                            "type": "",
                            "value": "1"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "570:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "570:10:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "582:1:54",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nodeType": "YulIdentifier",
                      "src": "566:3:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "566:18:54"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "560:2:54",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "611:16:54",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "620:1:54",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "623:1:54",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "613:6:54"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "613:12:54"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "613:12:54"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "599:6:54"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "607:2:54"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "596:2:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "596:14:54"
                  },
                  "nodeType": "YulIf",
                  "src": "593:34:54"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "636:32:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "650:9:54"
                      },
                      {
                        "name": "offset",
                        "nodeType": "YulIdentifier",
                        "src": "661:6:54"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "646:3:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "646:22:54"
                  },
                  "variables": [
                    {
                      "name": "_2",
                      "nodeType": "YulTypedName",
                      "src": "640:2:54",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "716:16:54",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "725:1:54",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "728:1:54",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "718:6:54"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "718:12:54"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "718:12:54"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_2",
                                "nodeType": "YulIdentifier",
                                "src": "695:2:54"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "699:4:54",
                                "type": "",
                                "value": "0x1f"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "691:3:54"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "691:13:54"
                          },
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "706:7:54"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "687:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "687:27:54"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "680:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "680:35:54"
                  },
                  "nodeType": "YulIf",
                  "src": "677:55:54"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "741:30:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "768:2:54"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "755:12:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "755:16:54"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "745:6:54",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "798:16:54",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "807:1:54",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "810:1:54",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "800:6:54"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "800:12:54"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "800:12:54"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "786:6:54"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "794:2:54"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "783:2:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "783:14:54"
                  },
                  "nodeType": "YulIf",
                  "src": "780:34:54"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "872:16:54",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "881:1:54",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "884:1:54",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "874:6:54"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "874:12:54"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "874:12:54"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "_2",
                                "nodeType": "YulIdentifier",
                                "src": "837:2:54"
                              },
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "845:1:54",
                                    "type": "",
                                    "value": "5"
                                  },
                                  {
                                    "name": "length",
                                    "nodeType": "YulIdentifier",
                                    "src": "848:6:54"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "841:3:54"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "841:14:54"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "833:3:54"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "833:23:54"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "858:2:54",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "829:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "829:32:54"
                      },
                      {
                        "name": "dataEnd",
                        "nodeType": "YulIdentifier",
                        "src": "863:7:54"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "826:2:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "826:45:54"
                  },
                  "nodeType": "YulIf",
                  "src": "823:65:54"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "897:21:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "_2",
                        "nodeType": "YulIdentifier",
                        "src": "911:2:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "915:2:54",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "907:3:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "907:11:54"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "897:6:54"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "927:16:54",
                  "value": {
                    "name": "length",
                    "nodeType": "YulIdentifier",
                    "src": "937:6:54"
                  },
                  "variableNames": [
                    {
                      "name": "value2",
                      "nodeType": "YulIdentifier",
                      "src": "927:6:54"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_contract$_IClaimIssuer_$1456t_array$_t_uint256_$dyn_calldata_ptr",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "257:9:54",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "268:7:54",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "280:6:54",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "288:6:54",
                "type": ""
              },
              {
                "name": "value2",
                "nodeType": "YulTypedName",
                "src": "296:6:54",
                "type": ""
              }
            ],
            "src": "164:785:54"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1041:242:54",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1087:16:54",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1096:1:54",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1099:1:54",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "1089:6:54"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1089:12:54"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1089:12:54"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "1062:7:54"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "1071:9:54"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "1058:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1058:23:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1083:2:54",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "1054:3:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1054:32:54"
                  },
                  "nodeType": "YulIf",
                  "src": "1051:52:54"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1112:36:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1138:9:54"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "1125:12:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1125:23:54"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "1116:5:54",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "1196:5:54"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_contract_IClaimIssuer",
                      "nodeType": "YulIdentifier",
                      "src": "1157:38:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1157:45:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1157:45:54"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1211:15:54",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "1221:5:54"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "1211:6:54"
                    }
                  ]
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1235:42:54",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "1262:9:54"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1273:2:54",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1258:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1258:18:54"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "1245:12:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1245:32:54"
                  },
                  "variableNames": [
                    {
                      "name": "value1",
                      "nodeType": "YulIdentifier",
                      "src": "1235:6:54"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_addresst_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "999:9:54",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "1010:7:54",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "1022:6:54",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "1030:6:54",
                "type": ""
              }
            ],
            "src": "954:329:54"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1383:92:54",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "1393:26:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1405:9:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1416:2:54",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "1401:3:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1401:18:54"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "1393:4:54"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1435:9:54"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value0",
                                "nodeType": "YulIdentifier",
                                "src": "1460:6:54"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nodeType": "YulIdentifier",
                              "src": "1453:6:54"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "1453:14:54"
                          }
                        ],
                        "functionName": {
                          "name": "iszero",
                          "nodeType": "YulIdentifier",
                          "src": "1446:6:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1446:22:54"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1428:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1428:41:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1428:41:54"
                }
              ]
            },
            "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "1352:9:54",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "1363:6:54",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "1374:4:54",
                "type": ""
              }
            ],
            "src": "1288:187:54"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1581:102:54",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "1591:26:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1603:9:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1614:2:54",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "1599:3:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1599:18:54"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "1591:4:54"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1633:9:54"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "1648:6:54"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "1664:3:54",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "1669:1:54",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "1660:3:54"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "1660:11:54"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "1673:1:54",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "1656:3:54"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "1656:19:54"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "1644:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1644:32:54"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1626:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1626:51:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1626:51:54"
                }
              ]
            },
            "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "1550:9:54",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "1561:6:54",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "1572:4:54",
                "type": ""
              }
            ],
            "src": "1480:203:54"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1779:191:54",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1825:16:54",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1834:1:54",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1837:1:54",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "1827:6:54"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1827:12:54"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1827:12:54"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "1800:7:54"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "1809:9:54"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "1796:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1796:23:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1821:2:54",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "1792:3:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1792:32:54"
                  },
                  "nodeType": "YulIf",
                  "src": "1789:52:54"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1850:36:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1876:9:54"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "1863:12:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1863:23:54"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "1854:5:54",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "1934:5:54"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_contract_IClaimIssuer",
                      "nodeType": "YulIdentifier",
                      "src": "1895:38:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1895:45:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1895:45:54"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1949:15:54",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "1959:5:54"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "1949:6:54"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_contract$_IClaimIssuer_$1456",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "1745:9:54",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "1756:7:54",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "1768:6:54",
                "type": ""
              }
            ],
            "src": "1688:282:54"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2126:481:54",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2136:12:54",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "2146:2:54",
                    "type": "",
                    "value": "32"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "2140:2:54",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2157:32:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2175:9:54"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "2186:2:54"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "2171:3:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2171:18:54"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "2161:6:54",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2205:9:54"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "2216:2:54"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "2198:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2198:21:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2198:21:54"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2228:17:54",
                  "value": {
                    "name": "tail_1",
                    "nodeType": "YulIdentifier",
                    "src": "2239:6:54"
                  },
                  "variables": [
                    {
                      "name": "pos",
                      "nodeType": "YulTypedName",
                      "src": "2232:3:54",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2254:27:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "2274:6:54"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "2268:5:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2268:13:54"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "2258:6:54",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "2297:6:54"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "2305:6:54"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "2290:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2290:22:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2290:22:54"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2321:25:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2332:9:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2343:2:54",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "2328:3:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2328:18:54"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "2321:3:54"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2355:29:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "2373:6:54"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "2381:2:54"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "2369:3:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2369:15:54"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nodeType": "YulTypedName",
                      "src": "2359:6:54",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2393:10:54",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "2402:1:54",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "2397:1:54",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "2461:120:54",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "2482:3:54"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "srcPtr",
                                  "nodeType": "YulIdentifier",
                                  "src": "2493:6:54"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nodeType": "YulIdentifier",
                                "src": "2487:5:54"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "2487:13:54"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "2475:6:54"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2475:26:54"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "2475:26:54"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "2514:19:54",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "2525:3:54"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "2530:2:54"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "2521:3:54"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2521:12:54"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "2514:3:54"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "2546:25:54",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "2560:6:54"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "2568:2:54"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "2556:3:54"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2556:15:54"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nodeType": "YulIdentifier",
                            "src": "2546:6:54"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "2423:1:54"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "2426:6:54"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "2420:2:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2420:13:54"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "2434:18:54",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "2436:14:54",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "2445:1:54"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "2448:1:54",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "2441:3:54"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "2441:9:54"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "2436:1:54"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "2416:3:54",
                    "statements": []
                  },
                  "src": "2412:169:54"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2590:11:54",
                  "value": {
                    "name": "pos",
                    "nodeType": "YulIdentifier",
                    "src": "2598:3:54"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "2590:4:54"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "2095:9:54",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "2106:6:54",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "2117:4:54",
                "type": ""
              }
            ],
            "src": "1975:632:54"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2784:507:54",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2794:12:54",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "2804:2:54",
                    "type": "",
                    "value": "32"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "2798:2:54",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2815:32:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2833:9:54"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "2844:2:54"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "2829:3:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2829:18:54"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "2819:6:54",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2863:9:54"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "2874:2:54"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "2856:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2856:21:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2856:21:54"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2886:17:54",
                  "value": {
                    "name": "tail_1",
                    "nodeType": "YulIdentifier",
                    "src": "2897:6:54"
                  },
                  "variables": [
                    {
                      "name": "pos",
                      "nodeType": "YulTypedName",
                      "src": "2890:3:54",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "2912:27:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "2932:6:54"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "2926:5:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2926:13:54"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "2916:6:54",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "2955:6:54"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "2963:6:54"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "2948:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2948:22:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2948:22:54"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2979:25:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2990:9:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3001:2:54",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "2986:3:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2986:18:54"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "2979:3:54"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3013:29:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "3031:6:54"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "3039:2:54"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "3027:3:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3027:15:54"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nodeType": "YulTypedName",
                      "src": "3017:6:54",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3051:10:54",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "3060:1:54",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "3055:1:54",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3119:146:54",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "3140:3:54"
                            },
                            {
                              "arguments": [
                                {
                                  "arguments": [
                                    {
                                      "name": "srcPtr",
                                      "nodeType": "YulIdentifier",
                                      "src": "3155:6:54"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "mload",
                                    "nodeType": "YulIdentifier",
                                    "src": "3149:5:54"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "3149:13:54"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "3172:3:54",
                                          "type": "",
                                          "value": "160"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "3177:1:54",
                                          "type": "",
                                          "value": "1"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "shl",
                                        "nodeType": "YulIdentifier",
                                        "src": "3168:3:54"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "3168:11:54"
                                    },
                                    {
                                      "kind": "number",
                                      "nodeType": "YulLiteral",
                                      "src": "3181:1:54",
                                      "type": "",
                                      "value": "1"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "sub",
                                    "nodeType": "YulIdentifier",
                                    "src": "3164:3:54"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "3164:19:54"
                                }
                              ],
                              "functionName": {
                                "name": "and",
                                "nodeType": "YulIdentifier",
                                "src": "3145:3:54"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "3145:39:54"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "3133:6:54"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3133:52:54"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3133:52:54"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "3198:19:54",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "3209:3:54"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "3214:2:54"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "3205:3:54"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3205:12:54"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "3198:3:54"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "3230:25:54",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "3244:6:54"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "3252:2:54"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "3240:3:54"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3240:15:54"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nodeType": "YulIdentifier",
                            "src": "3230:6:54"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "3081:1:54"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "3084:6:54"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "3078:2:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3078:13:54"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "3092:18:54",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "3094:14:54",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "3103:1:54"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3106:1:54",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "3099:3:54"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3099:9:54"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "3094:1:54"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "3074:3:54",
                    "statements": []
                  },
                  "src": "3070:195:54"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3274:11:54",
                  "value": {
                    "name": "pos",
                    "nodeType": "YulIdentifier",
                    "src": "3282:3:54"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "3274:4:54"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_array$_t_contract$_IClaimIssuer_$1456_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "2753:9:54",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "2764:6:54",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "2775:4:54",
                "type": ""
              }
            ],
            "src": "2612:679:54"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "3366:191:54",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "3412:16:54",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3421:1:54",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "3424:1:54",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "3414:6:54"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "3414:12:54"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "3414:12:54"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "3387:7:54"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3396:9:54"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "3383:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3383:23:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3408:2:54",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "3379:3:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3379:32:54"
                  },
                  "nodeType": "YulIf",
                  "src": "3376:52:54"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "3437:36:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "3463:9:54"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "3450:12:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3450:23:54"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "3441:5:54",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "3521:5:54"
                      }
                    ],
                    "functionName": {
                      "name": "validator_revert_contract_IClaimIssuer",
                      "nodeType": "YulIdentifier",
                      "src": "3482:38:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3482:45:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "3482:45:54"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3536:15:54",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "3546:5:54"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "3536:6:54"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "3332:9:54",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "3343:7:54",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "3355:6:54",
                "type": ""
              }
            ],
            "src": "3296:261:54"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "3736:178:54",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "3753:9:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3764:2:54",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "3746:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3746:21:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "3746:21:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3787:9:54"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3798:2:54",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3783:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3783:18:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3803:2:54",
                        "type": "",
                        "value": "28"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "3776:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3776:30:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "3776:30:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3826:9:54"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3837:2:54",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3822:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3822:18:54"
                      },
                      {
                        "hexValue": "747275737465642049737375657220646f65736e2774206578697374",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "3842:30:54",
                        "type": "",
                        "value": "trusted Issuer doesn't exist"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "3815:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3815:58:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "3815:58:54"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3882:26:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "3894:9:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3905:2:54",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "3890:3:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3890:18:54"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "3882:4:54"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_15f0c9128dfa46bb95add130c371764e9c90d5f89c3e2a9b3ad56503a7919730__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "3713:9:54",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "3727:4:54",
                "type": ""
              }
            ],
            "src": "3562:352:54"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "4093:178:54",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "4110:9:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4121:2:54",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "4103:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4103:21:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4103:21:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4144:9:54"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4155:2:54",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4140:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4140:18:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4160:2:54",
                        "type": "",
                        "value": "28"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "4133:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4133:30:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4133:30:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4183:9:54"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4194:2:54",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4179:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4179:18:54"
                      },
                      {
                        "hexValue": "636c61696d20746f706963732063616e6e6f7420626520656d707479",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "4199:30:54",
                        "type": "",
                        "value": "claim topics cannot be empty"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "4172:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4172:58:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4172:58:54"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4239:26:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "4251:9:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4262:2:54",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "4247:3:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4247:18:54"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "4239:4:54"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_d663cdfe6c385f3148232466f81c068a6fec44b27da3c9bf19d56295a7a2dc36__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "4070:9:54",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "4084:4:54",
                "type": ""
              }
            ],
            "src": "3919:352:54"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "4437:282:54",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "4454:9:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4465:2:54",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "4447:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4447:21:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4447:21:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4488:9:54"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4499:2:54",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4484:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4484:18:54"
                      },
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "4504:6:54"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "4477:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4477:34:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4477:34:54"
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "4555:16:54",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4564:1:54",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "4567:1:54",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "4557:6:54"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "4557:12:54"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "4557:12:54"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "4526:6:54"
                      },
                      {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "4542:3:54",
                                "type": "",
                                "value": "251"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "4547:1:54",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "4538:3:54"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "4538:11:54"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4551:1:54",
                            "type": "",
                            "value": "1"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "4534:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4534:19:54"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "4523:2:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4523:31:54"
                  },
                  "nodeType": "YulIf",
                  "src": "4520:51:54"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "4580:28:54",
                  "value": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4598:1:54",
                        "type": "",
                        "value": "5"
                      },
                      {
                        "name": "value1",
                        "nodeType": "YulIdentifier",
                        "src": "4601:6:54"
                      }
                    ],
                    "functionName": {
                      "name": "shl",
                      "nodeType": "YulIdentifier",
                      "src": "4594:3:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4594:14:54"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "4584:6:54",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4634:9:54"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4645:2:54",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4630:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4630:18:54"
                      },
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "4650:6:54"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "4658:6:54"
                      }
                    ],
                    "functionName": {
                      "name": "calldatacopy",
                      "nodeType": "YulIdentifier",
                      "src": "4617:12:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4617:48:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4617:48:54"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "4674:39:54",
                  "value": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4690:9:54"
                          },
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "4701:6:54"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4686:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4686:22:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4710:2:54",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "4682:3:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4682:31:54"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "4674:4:54"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_array$_t_uint256_$dyn_calldata_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "4398:9:54",
                "type": ""
              },
              {
                "name": "value1",
                "nodeType": "YulTypedName",
                "src": "4409:6:54",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "4417:6:54",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "4428:4:54",
                "type": ""
              }
            ],
            "src": "4276:443:54"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "4756:95:54",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4773:1:54",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4780:3:54",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4785:10:54",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "4776:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4776:20:54"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "4766:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4766:31:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4766:31:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4813:1:54",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4816:4:54",
                        "type": "",
                        "value": "0x32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "4806:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4806:15:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4806:15:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4837:1:54",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4840:4:54",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "4830:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4830:15:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4830:15:54"
                }
              ]
            },
            "name": "panic_error_0x32",
            "nodeType": "YulFunctionDefinition",
            "src": "4724:127:54"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "4888:95:54",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4905:1:54",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4912:3:54",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4917:10:54",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "4908:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4908:20:54"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "4898:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4898:31:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4898:31:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4945:1:54",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4948:4:54",
                        "type": "",
                        "value": "0x11"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "4938:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4938:15:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4938:15:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4969:1:54",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "4972:4:54",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "4962:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "4962:15:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "4962:15:54"
                }
              ]
            },
            "name": "panic_error_0x11",
            "nodeType": "YulFunctionDefinition",
            "src": "4856:127:54"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5035:88:54",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "5066:22:54",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "5068:16:54"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5068:18:54"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5068:18:54"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "5051:5:54"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5062:1:54",
                            "type": "",
                            "value": "0"
                          }
                        ],
                        "functionName": {
                          "name": "not",
                          "nodeType": "YulIdentifier",
                          "src": "5058:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5058:6:54"
                      }
                    ],
                    "functionName": {
                      "name": "eq",
                      "nodeType": "YulIdentifier",
                      "src": "5048:2:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5048:17:54"
                  },
                  "nodeType": "YulIf",
                  "src": "5045:43:54"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5097:20:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "5108:5:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5115:1:54",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "5104:3:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5104:13:54"
                  },
                  "variableNames": [
                    {
                      "name": "ret",
                      "nodeType": "YulIdentifier",
                      "src": "5097:3:54"
                    }
                  ]
                }
              ]
            },
            "name": "increment_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "5017:5:54",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "ret",
                "nodeType": "YulTypedName",
                "src": "5027:3:54",
                "type": ""
              }
            ],
            "src": "4988:135:54"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5302:179:54",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "5319:9:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5330:2:54",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5312:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5312:21:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5312:21:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5353:9:54"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5364:2:54",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5349:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5349:18:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5369:2:54",
                        "type": "",
                        "value": "29"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5342:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5342:30:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5342:30:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5392:9:54"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5403:2:54",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5388:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5388:18:54"
                      },
                      {
                        "hexValue": "747275737465642049737375657220616c726561647920657869737473",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "5408:31:54",
                        "type": "",
                        "value": "trusted Issuer already exists"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5381:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5381:59:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5381:59:54"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5449:26:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "5461:9:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5472:2:54",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "5457:3:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5457:18:54"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "5449:4:54"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_4cb688b3c4a2dd0c26630ea7cacb1c02095c00734f9ed8a5d4e712c0fd8e7b82__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "5279:9:54",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "5293:4:54",
                "type": ""
              }
            ],
            "src": "5128:353:54"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5660:226:54",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "5677:9:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5688:2:54",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5670:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5670:21:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5670:21:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5711:9:54"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5722:2:54",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5707:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5707:18:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5727:2:54",
                        "type": "",
                        "value": "36"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5700:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5700:30:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5700:30:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5750:9:54"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5761:2:54",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5746:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5746:18:54"
                      },
                      {
                        "hexValue": "7472757374656420636c61696d20746f706963732063616e6e6f742062652065",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "5766:34:54",
                        "type": "",
                        "value": "trusted claim topics cannot be e"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5739:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5739:62:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5739:62:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5821:9:54"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5832:2:54",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5817:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5817:18:54"
                      },
                      {
                        "hexValue": "6d707479",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "5837:6:54",
                        "type": "",
                        "value": "mpty"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "5810:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5810:34:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "5810:34:54"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "5853:27:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "5865:9:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "5876:3:54",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "5861:3:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5861:19:54"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "5853:4:54"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_c6a6ea1170336f754583b76f6b80f11e49a78299b0a6e7d3198454d9d1e2a277__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "5637:9:54",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "5651:4:54",
                "type": ""
              }
            ],
            "src": "5486:400:54"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "5940:79:54",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "5950:17:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "5962:1:54"
                      },
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "5965:1:54"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nodeType": "YulIdentifier",
                      "src": "5958:3:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5958:9:54"
                  },
                  "variableNames": [
                    {
                      "name": "diff",
                      "nodeType": "YulIdentifier",
                      "src": "5950:4:54"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "5991:22:54",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "5993:16:54"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "5993:18:54"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "5993:18:54"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "diff",
                        "nodeType": "YulIdentifier",
                        "src": "5982:4:54"
                      },
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "5988:1:54"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "5979:2:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "5979:11:54"
                  },
                  "nodeType": "YulIf",
                  "src": "5976:37:54"
                }
              ]
            },
            "name": "checked_sub_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nodeType": "YulTypedName",
                "src": "5922:1:54",
                "type": ""
              },
              {
                "name": "y",
                "nodeType": "YulTypedName",
                "src": "5925:1:54",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "diff",
                "nodeType": "YulTypedName",
                "src": "5931:4:54",
                "type": ""
              }
            ],
            "src": "5891:128:54"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "6056:95:54",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6073:1:54",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "6080:3:54",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "6085:10:54",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "6076:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6076:20:54"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "6066:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6066:31:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "6066:31:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6113:1:54",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6116:4:54",
                        "type": "",
                        "value": "0x31"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "6106:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6106:15:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "6106:15:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6137:1:54",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6140:4:54",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "6130:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6130:15:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "6130:15:54"
                }
              ]
            },
            "name": "panic_error_0x31",
            "nodeType": "YulFunctionDefinition",
            "src": "6024:127:54"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "6330:228:54",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "6347:9:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6358:2:54",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "6340:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6340:21:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "6340:21:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "6381:9:54"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "6392:2:54",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "6377:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6377:18:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6397:2:54",
                        "type": "",
                        "value": "38"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "6370:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6370:30:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "6370:30:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "6420:9:54"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "6431:2:54",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "6416:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6416:18:54"
                      },
                      {
                        "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "6436:34:54",
                        "type": "",
                        "value": "Ownable: new owner is the zero a"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "6409:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6409:62:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "6409:62:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "6491:9:54"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "6502:2:54",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "6487:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6487:18:54"
                      },
                      {
                        "hexValue": "646472657373",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "6507:8:54",
                        "type": "",
                        "value": "ddress"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "6480:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6480:36:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "6480:36:54"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "6525:27:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "6537:9:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6548:3:54",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "6533:3:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6533:19:54"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "6525:4:54"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "6307:9:54",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "6321:4:54",
                "type": ""
              }
            ],
            "src": "6156:402:54"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "6737:182:54",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "6754:9:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6765:2:54",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "6747:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6747:21:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "6747:21:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "6788:9:54"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "6799:2:54",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "6784:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6784:18:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6804:2:54",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "6777:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6777:30:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "6777:30:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "6827:9:54"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "6838:2:54",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "6823:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "6823:18:54"
                      },
                      {
                        "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "6843:34:54",
                        "type": "",
                        "value": "Ownable: caller is not the owner"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "6816:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6816:62:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "6816:62:54"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "6887:26:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "6899:9:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "6910:2:54",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "6895:3:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "6895:18:54"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "6887:4:54"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "6714:9:54",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "6728:4:54",
                "type": ""
              }
            ],
            "src": "6563:356:54"
          }
        ]
      },
      "contents": "{\n    { }\n    function validator_revert_contract_IClaimIssuer(value)\n    {\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_contract$_IClaimIssuer_$1456t_array$_t_uint256_$dyn_calldata_ptr(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_contract_IClaimIssuer(value)\n        value0 := value\n        let offset := calldataload(add(headStart, 32))\n        let _1 := sub(shl(64, 1), 1)\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, shl(5, length)), 32), dataEnd) { revert(0, 0) }\n        value1 := add(_2, 32)\n        value2 := length\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_contract_IClaimIssuer(value)\n        value0 := value\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_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_contract$_IClaimIssuer_$1456(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_contract_IClaimIssuer(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_array$_t_uint256_$dyn_memory_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        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, mload(srcPtr))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        tail := pos\n    }\n    function abi_encode_tuple_t_array$_t_contract$_IClaimIssuer_$1456_$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_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        validator_revert_contract_IClaimIssuer(value)\n        value0 := value\n    }\n    function abi_encode_tuple_t_stringliteral_15f0c9128dfa46bb95add130c371764e9c90d5f89c3e2a9b3ad56503a7919730__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 28)\n        mstore(add(headStart, 64), \"trusted Issuer doesn't exist\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_d663cdfe6c385f3148232466f81c068a6fec44b27da3c9bf19d56295a7a2dc36__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 28)\n        mstore(add(headStart, 64), \"claim topics cannot be empty\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_array$_t_uint256_$dyn_calldata_ptr__to_t_array$_t_uint256_$dyn_memory_ptr__fromStack_reversed(headStart, value1, value0) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), value1)\n        if gt(value1, sub(shl(251, 1), 1)) { revert(0, 0) }\n        let length := shl(5, value1)\n        calldatacopy(add(headStart, 64), value0, length)\n        tail := add(add(headStart, length), 64)\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_4cb688b3c4a2dd0c26630ea7cacb1c02095c00734f9ed8a5d4e712c0fd8e7b82__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 29)\n        mstore(add(headStart, 64), \"trusted Issuer already exists\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_c6a6ea1170336f754583b76f6b80f11e49a78299b0a6e7d3198454d9d1e2a277__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), \"trusted claim topics cannot be e\")\n        mstore(add(headStart, 96), \"mpty\")\n        tail := add(headStart, 128)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        diff := sub(x, y)\n        if gt(diff, x) { panic_error_0x11() }\n    }\n    function panic_error_0x31()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x31)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_stringliteral_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}",
      "id": 54,
      "language": "Yul",
      "name": "#utility.yul"
    }
  ],
  "sourceMap": "1292:3930:41:-:0;;;;;;;;;;;;-1:-1:-1;936:32:13;719:10:20;936:18:13;:32::i;:::-;1292:3930:41;;2433:187:13;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:13;;;-1:-1:-1;;;;;;2541:17:13;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;1292:3930:41:-;;;;;;;",
  "deployedSourceMap": "1292:3930:41:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3017:454;;;;;;:::i;:::-;;:::i;:::-;;4549:418;;;;;;:::i;:::-;;:::i;:::-;;;1453:14:54;;1446:22;1428:41;;1416:2;1401:18;4549:418:41;;;;;;;;1831:101:13;;;:::i;1201:85::-;;;:::i;:::-;;;-1:-1:-1;;;;;1644:32:54;;;1626:51;;1614:2;1599:18;1201:85:13;1480:203:54;1719:500:41;;;;;;:::i;:::-;;:::i;2305:622::-;;;;;;:::i;:::-;;:::i;4167:302::-;;;;;;:::i;:::-;;:::i;:::-;;;;;;;:::i;3555:122::-;;;:::i;:::-;;;;;;;:::i;5076:144::-;;;;;;:::i;:::-;;:::i;3759:314::-;;;;;;:::i;:::-;;:::i;2081:198:13:-;;;;;;:::i;:::-;;:::i;3017:454:41:-;1094:13:13;:11;:13::i;:::-;-1:-1:-1;;;;;3158:49:41;::::1;;::::0;;;:24:::1;:49;::::0;;;;:56;:61;;3150:103:::1;;;;-1:-1:-1::0;;;3150:103:41::1;;;;;;;:::i;:::-;;;;;;;;;3271:23:::0;3263:64:::1;;;::::0;-1:-1:-1;;;3263:64:41;;4121:2:54;3263:64:41::1;::::0;::::1;4103:21:54::0;4160:2;4140:18;;;4133:30;-1:-1:-1;;;4179:18:54;;;4172:58;4247:18;;3263:64:41::1;3919:352:54::0;3263:64:41::1;-1:-1:-1::0;;;;;3337:49:41;::::1;;::::0;;;:24:::1;:49;::::0;;;;:64:::1;::::0;3389:12;;3337:64:::1;:::i;:::-;;3435:14;-1:-1:-1::0;;;;;3416:48:41::1;;3451:12;;3416:48;;;;;;;:::i;:::-;;;;;;;;3017:454:::0;;;:::o;4549:418::-;-1:-1:-1;;;;;4675:33:41;;4642:4;4675:33;;;:24;:33;;;;;;;;:40;;4725:64;;;;;;;;;;;;;;;4675:40;4642:4;;4725:64;4675:33;:40;;4725:64;;4675:33;:40;4725:64;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4804:9;4799:140;4823:6;4819:1;:10;4799:140;;;4872:11;4854;4866:1;4854:14;;;;;;;;:::i;:::-;;;;;;;:29;4850:79;;4910:4;4903:11;;;;;;;4850:79;4831:3;;;;:::i;:::-;;;;4799:140;;;;4955:5;4948:12;;;;4549:418;;;;;:::o;1831:101:13:-;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:13;;1201:85::o;1719:500:41:-;1094:13:13;:11;:13::i;:::-;-1:-1:-1;;;;;1853:49:41;::::1;;::::0;;;:24:::1;:49;::::0;;;;:56;:61;1845:103:::1;;;::::0;-1:-1:-1;;;1845:103:41;;5330:2:54;1845:103:41::1;::::0;::::1;5312:21:54::0;5369:2;5349:18;;;5342:30;5408:31;5388:18;;;5381:59;5457:18;;1845:103:41::1;5128:353:54::0;1845:103:41::1;1966:23:::0;1958:72:::1;;;::::0;-1:-1:-1;;;1958:72:41;;5688:2:54;1958:72:41::1;::::0;::::1;5670:21:54::0;5727:2;5707:18;;;5700:30;5766:34;5746:18;;;5739:62;-1:-1:-1;;;5817:18:54;;;5810:34;5861:19;;1958:72:41::1;5486:400:54::0;1958:72:41::1;2040:14;:35:::0;;;;::::1;::::0;;;;::::1;::::0;;-1:-1:-1;;;;;;2040:35:41::1;-1:-1:-1::0;;;;;2040:35:41;::::1;::::0;;::::1;::::0;;;-1:-1:-1;2085:49:41;;;:24:::1;2040:35;2085:49:::0;;;;:64:::1;::::0;2137:12;;2085:64:::1;:::i;:::-;;2183:14;-1:-1:-1::0;;;;;2164:48:41::1;;2199:12;;2164:48;;;;;;;:::i;2305:622::-:0;1094:13:13;:11;:13::i;:::-;-1:-1:-1;;;;;2409:49:41;::::1;;::::0;;;:24:::1;:49;::::0;;;;:56;:61;;2401:103:::1;;;;-1:-1:-1::0;;;2401:103:41::1;;;;;;;:::i;:::-;2531:14;:21:::0;2514:14:::1;2562:242;2586:6;2582:1;:10;2562:242;;;2638:14;-1:-1:-1::0;;;;;2617:35:41::1;:14;2632:1;2617:17;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;-1:-1:-1;;;;;2617:17:41::1;:35:::0;2613:181:::1;;2692:14;2707:10;2692:14:::0;2707:6;:10:::1;:::i;:::-;2692:26;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;::::0;;2672:17;;-1:-1:-1;;;;;2692:26:41;;::::1;::::0;2687:1;;2672:17;::::1;;;;;:::i;:::-;;;;;;;;;:46;;;;;-1:-1:-1::0;;;;;2672:46:41::1;;;;;-1:-1:-1::0;;;;;2672:46:41::1;;;;;;2736:14;:20;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;;-1:-1:-1;;2736:20:41;;;;;-1:-1:-1;;;;;;2736:20:41::1;::::0;;;;;2774:5:::1;;2613:181;2594:3:::0;::::1;::::0;::::1;:::i;:::-;;;;2562:242;;;-1:-1:-1::0;;;;;;2820:49:41;::::1;;::::0;;;:24:::1;:49;::::0;;;;2813:56:::1;::::0;::::1;:::i;:::-;2884:36;::::0;-1:-1:-1;;;;;2884:36:41;::::1;::::0;::::1;::::0;;;::::1;2391:536;2305:622:::0;:::o;4167:302::-;-1:-1:-1;;;;;4301:49:41;;;;;;:24;:49;;;;;:56;4265:16;;4301:61;4293:103;;;;-1:-1:-1;;;4293:103:41;;;;;;;:::i;:::-;-1:-1:-1;;;;;4413:49:41;;;;;;:24;:49;;;;;;;;;4406:56;;;;;;;;;;;;;;;;;4413:49;;4406:56;;4413:49;4406:56;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;4167:302;;;:::o;3555:122::-;3616:21;3656:14;3649:21;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3649:21:41;;;;;;;;;;;;;;;;;;;;;;;3555:122;:::o;5076:144::-;1094:13:13;:11;:13::i;:::-;5185:28:41::1;5203:9;5185:17;:28::i;:::-;5076:144:::0;:::o;3759:314::-;3866:14;:21;3833:4;;;3897:148;3921:6;3917:1;:10;3897:148;;;3982:7;-1:-1:-1;;;;;3952:37:41;3960:14;3975:1;3960:17;;;;;;;;:::i;:::-;;;;;;;;;;;-1:-1:-1;;;;;3960:17:41;3952:37;3948:87;;-1:-1:-1;4016:4:41;;3759:314;-1:-1:-1;;;3759:314:41:o;3948:87::-;3929:3;;;;:::i;:::-;;;;3897:148;;;-1:-1:-1;4061:5:41;;3759:314;-1:-1:-1;;;3759:314:41:o;2081:198:13:-;1094:13;:11;:13::i;:::-;-1:-1:-1;;;;;2169:22:13;::::1;2161:73;;;::::0;-1:-1:-1;;;2161:73:13;;6358:2:54;2161:73:13::1;::::0;::::1;6340:21:54::0;6397:2;6377:18;;;6370:30;6436:34;6416:18;;;6409:62;-1:-1:-1;;;6487:18:54;;;6480:36;6533:19;;2161:73:13::1;6156:402:54::0;2161:73:13::1;2244:28;2263:8;2244:18;:28::i;1359:130::-:0;719:10:20;1422:7:13;:5;:7::i;:::-;-1:-1:-1;;;;;1422:23:13;;1414:68;;;;-1:-1:-1;;;1414:68:13;;6765:2:54;1414:68:13;;;6747:21:54;;;6784:18;;;6777:30;6843:34;6823:18;;;6816:62;6895:18;;1414:68:13;6563:356:54;2433:187:13;2506:16;2525:6;;-1:-1:-1;;;;;2541:17:13;;;-1:-1:-1;;;;;;2541:17:13;;;;;;2573:40;;2525:6;;;;;;;2573:40;;2506:16;2573:40;2496:124;2433:187;:::o;-1:-1:-1:-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;:::i;:::-;;;:::o;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;14:145:54;-1:-1:-1;;;;;103:31:54;;93:42;;83:70;;149:1;146;139:12;164:785;280:6;288;296;349:2;337:9;328:7;324:23;320:32;317:52;;;365:1;362;355:12;317:52;404:9;391:23;423:45;462:5;423:45;:::i;:::-;487:5;-1:-1:-1;543:2:54;528:18;;515:32;-1:-1:-1;;;;;596:14:54;;;593:34;;;623:1;620;613:12;593:34;661:6;650:9;646:22;636:32;;706:7;699:4;695:2;691:13;687:27;677:55;;728:1;725;718:12;677:55;768:2;755:16;794:2;786:6;783:14;780:34;;;810:1;807;800:12;780:34;863:7;858:2;848:6;845:1;841:14;837:2;833:23;829:32;826:45;823:65;;;884:1;881;874:12;823:65;915:2;911;907:11;897:21;;937:6;927:16;;;;;164:785;;;;;:::o;954:329::-;1022:6;1030;1083:2;1071:9;1062:7;1058:23;1054:32;1051:52;;;1099:1;1096;1089:12;1051:52;1138:9;1125:23;1157:45;1196:5;1157:45;:::i;:::-;1221:5;1273:2;1258:18;;;;1245:32;;-1:-1:-1;;;954:329:54:o;1688:282::-;1768:6;1821:2;1809:9;1800:7;1796:23;1792:32;1789:52;;;1837:1;1834;1827:12;1789:52;1876:9;1863:23;1895:45;1934:5;1895:45;:::i;:::-;1959:5;1688:282;-1:-1:-1;;;1688:282:54:o;1975:632::-;2146:2;2198:21;;;2268:13;;2171:18;;;2290:22;;;2117:4;;2146:2;2369:15;;;;2343:2;2328:18;;;2117:4;2412:169;2426:6;2423:1;2420:13;2412:169;;;2487:13;;2475:26;;2556:15;;;;2521:12;;;;2448:1;2441:9;2412:169;;;-1:-1:-1;2598:3:54;;1975:632;-1:-1:-1;;;;;;1975:632:54:o;2612:679::-;2804:2;2856:21;;;2926:13;;2829:18;;;2948:22;;;2775:4;;2804:2;3027:15;;;;3001:2;2986:18;;;2775:4;3070:195;3084:6;3081:1;3078:13;3070:195;;;3149:13;;-1:-1:-1;;;;;3145:39:54;3133:52;;3240:15;;;;3205:12;;;;3181:1;3099:9;3070:195;;3562:352;3764:2;3746:21;;;3803:2;3783:18;;;3776:30;-1:-1:-1;;;3837:2:54;3822:18;;3815:58;3905:2;3890:18;;3562:352::o;4276:443::-;4465:2;4447:21;;;4484:18;;4477:34;;;-1:-1:-1;;;;;;4523:31:54;;4520:51;;;4567:1;4564;4557:12;4520:51;4601:6;4598:1;4594:14;4658:6;4650;4645:2;4634:9;4630:18;4617:48;4686:22;;;;4710:2;4682:31;;4276:443;-1:-1:-1;;;4276:443:54:o;4724:127::-;4785:10;4780:3;4776:20;4773:1;4766:31;4816:4;4813:1;4806:15;4840:4;4837:1;4830:15;4856:127;4917:10;4912:3;4908:20;4905:1;4898:31;4948:4;4945:1;4938:15;4972:4;4969:1;4962:15;4988:135;5027:3;5048:17;;;5045:43;;5068:18;;:::i;:::-;-1:-1:-1;5115:1:54;5104:13;;4988:135::o;5891:128::-;5958:9;;;5979:11;;;5976:37;;;5993:18;;:::i;6024:127::-;6085:10;6080:3;6076:20;6073:1;6066:31;6116:4;6113:1;6106:15;6140:4;6137:1;6130:15",
  "source": "// SPDX-License-Identifier: GPL-3.0\n/**\n *     NOTICE\n *\n *     The T-REX software is licensed under a proprietary license or the GPL v.3.\n *     If you choose to receive it under the GPL v.3 license, the following applies:\n *     T-REX is a suite of smart contracts developed by Tokeny to manage and transfer financial assets on the ethereum blockchain\n *\n *     Copyright (C) 2021, Tokeny sàrl.\n *\n *     This program is free software: you can redistribute it and/or modify\n *     it under the terms of the GNU General Public License as published by\n *     the Free Software Foundation, either version 3 of the License, or\n *     (at your option) any later version.\n *\n *     This program is distributed in the hope that it will be useful,\n *     but WITHOUT ANY WARRANTY; without even the implied warranty of\n *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n *     GNU General Public License for more details.\n *\n *     You should have received a copy of the GNU General Public License\n *     along with this program.  If not, see <https://www.gnu.org/licenses/>.\n */\n\npragma solidity ^0.8.0;\n\nimport '@onchain-id/solidity/contracts/interface/IClaimIssuer.sol';\nimport '@openzeppelin/contracts/access/Ownable.sol';\n\nimport '../registry/ITrustedIssuersRegistry.sol';\n\n\ncontract TrustedIssuersRegistry is ITrustedIssuersRegistry, Ownable {\n    /// @dev Array containing all TrustedIssuers identity contract address.\n    IClaimIssuer[] private trustedIssuers;\n\n    /// @dev Mapping between a trusted issuer index and its corresponding claimTopics.\n    mapping(address => uint256[]) private trustedIssuerClaimTopics;\n\n    /**\n     *  @dev See {ITrustedIssuersRegistry-addTrustedIssuer}.\n     */\n    function addTrustedIssuer(IClaimIssuer _trustedIssuer, uint256[] calldata _claimTopics) external override onlyOwner {\n        require(trustedIssuerClaimTopics[address(_trustedIssuer)].length == 0, 'trusted Issuer already exists');\n        require(_claimTopics.length > 0, 'trusted claim topics cannot be empty');\n        trustedIssuers.push(_trustedIssuer);\n        trustedIssuerClaimTopics[address(_trustedIssuer)] = _claimTopics;\n        emit TrustedIssuerAdded(_trustedIssuer, _claimTopics);\n    }\n\n    /**\n     *  @dev See {ITrustedIssuersRegistry-removeTrustedIssuer}.\n     */\n    function removeTrustedIssuer(IClaimIssuer _trustedIssuer) external override onlyOwner {\n        require(trustedIssuerClaimTopics[address(_trustedIssuer)].length != 0, 'trusted Issuer doesn\\'t exist');\n        uint256 length = trustedIssuers.length;\n        for (uint256 i = 0; i < length; i++) {\n            if (trustedIssuers[i] == _trustedIssuer) {\n                trustedIssuers[i] = trustedIssuers[length - 1];\n                trustedIssuers.pop();\n                break;\n            }\n        }\n        delete trustedIssuerClaimTopics[address(_trustedIssuer)];\n        emit TrustedIssuerRemoved(_trustedIssuer);\n    }\n\n    /**\n     *  @dev See {ITrustedIssuersRegistry-updateIssuerClaimTopics}.\n     */\n    function updateIssuerClaimTopics(IClaimIssuer _trustedIssuer, uint256[] calldata _claimTopics) external override onlyOwner {\n        require(trustedIssuerClaimTopics[address(_trustedIssuer)].length != 0, 'trusted Issuer doesn\\'t exist');\n        require(_claimTopics.length > 0, 'claim topics cannot be empty');\n        trustedIssuerClaimTopics[address(_trustedIssuer)] = _claimTopics;\n        emit ClaimTopicsUpdated(_trustedIssuer, _claimTopics);\n    }\n\n    /**\n     *  @dev See {ITrustedIssuersRegistry-getTrustedIssuers}.\n     */\n    function getTrustedIssuers() external view override returns (IClaimIssuer[] memory) {\n        return trustedIssuers;\n    }\n\n    /**\n     *  @dev See {ITrustedIssuersRegistry-isTrustedIssuer}.\n     */\n    function isTrustedIssuer(address _issuer) external view override returns (bool) {\n        uint256 length = trustedIssuers.length;\n        for (uint256 i = 0; i < length; i++) {\n            if (address(trustedIssuers[i]) == _issuer) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     *  @dev See {ITrustedIssuersRegistry-getTrustedIssuerClaimTopics}.\n     */\n    function getTrustedIssuerClaimTopics(IClaimIssuer _trustedIssuer) external view override returns (uint256[] memory) {\n        require(trustedIssuerClaimTopics[address(_trustedIssuer)].length != 0, 'trusted Issuer doesn\\'t exist');\n        return trustedIssuerClaimTopics[address(_trustedIssuer)];\n    }\n\n    /**\n     *  @dev See {ITrustedIssuersRegistry-hasClaimTopic}.\n     */\n    function hasClaimTopic(address _issuer, uint256 _claimTopic) external view override returns (bool) {\n        uint256 length = trustedIssuerClaimTopics[_issuer].length;\n        uint256[] memory claimTopics = trustedIssuerClaimTopics[_issuer];\n        for (uint256 i = 0; i < length; i++) {\n            if (claimTopics[i] == _claimTopic) {\n                return true;\n            }\n        }\n        return false;\n    }\n\n    /**\n     *  @dev See {ITrustedIssuersRegistry-transferOwnershipOnIssuersRegistryContract}.\n     */\n    function transferOwnershipOnIssuersRegistryContract(address _newOwner) external override onlyOwner {\n        transferOwnership(_newOwner);\n    }\n}\n",
  "sourcePath": "/home/webxpert/workspace/shipfinex/latest-repos/tokenx_smartcontract/contracts/registry/TrustedIssuersRegistry.sol",
  "ast": {
    "absolutePath": "project:/contracts/registry/TrustedIssuersRegistry.sol",
    "exportedSymbols": {
      "Context": [
        3401
      ],
      "IClaimIssuer": [
        1456
      ],
      "IERC734": [
        1609
      ],
      "IERC735": [
        1734
      ],
      "IIdentity": [
        1743
      ],
      "ITrustedIssuersRegistry": [
        6856
      ],
      "Ownable": [
        2505
      ],
      "TrustedIssuersRegistry": [
        8213
      ]
    },
    "id": 8214,
    "license": "GPL-3.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 7864,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "1093:23:41"
      },
      {
        "absolutePath": "@onchain-id/solidity/contracts/interface/IClaimIssuer.sol",
        "file": "@onchain-id/solidity/contracts/interface/IClaimIssuer.sol",
        "id": 7865,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 8214,
        "sourceUnit": 1457,
        "src": "1118:67:41",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "@openzeppelin/contracts/access/Ownable.sol",
        "file": "@openzeppelin/contracts/access/Ownable.sol",
        "id": 7866,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 8214,
        "sourceUnit": 2506,
        "src": "1186:52:41",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/registry/ITrustedIssuersRegistry.sol",
        "file": "../registry/ITrustedIssuersRegistry.sol",
        "id": 7867,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 8214,
        "sourceUnit": 6857,
        "src": "1240:49:41",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 7868,
              "name": "ITrustedIssuersRegistry",
              "nameLocations": [
                "1327:23:41"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 6856,
              "src": "1327:23:41"
            },
            "id": 7869,
            "nodeType": "InheritanceSpecifier",
            "src": "1327:23:41"
          },
          {
            "baseName": {
              "id": 7870,
              "name": "Ownable",
              "nameLocations": [
                "1352:7:41"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 2505,
              "src": "1352:7:41"
            },
            "id": 7871,
            "nodeType": "InheritanceSpecifier",
            "src": "1352:7:41"
          }
        ],
        "canonicalName": "TrustedIssuersRegistry",
        "contractDependencies": [],
        "contractKind": "contract",
        "fullyImplemented": true,
        "id": 8213,
        "linearizedBaseContracts": [
          8213,
          2505,
          3401,
          6856
        ],
        "name": "TrustedIssuersRegistry",
        "nameLocation": "1301:22:41",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "documentation": {
              "id": 7872,
              "nodeType": "StructuredDocumentation",
              "src": "1366:71:41",
              "text": "@dev Array containing all TrustedIssuers identity contract address."
            },
            "id": 7876,
            "mutability": "mutable",
            "name": "trustedIssuers",
            "nameLocation": "1465:14:41",
            "nodeType": "VariableDeclaration",
            "scope": 8213,
            "src": "1442:37:41",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_contract$_IClaimIssuer_$1456_$dyn_storage",
              "typeString": "contract IClaimIssuer[]"
            },
            "typeName": {
              "baseType": {
                "id": 7874,
                "nodeType": "UserDefinedTypeName",
                "pathNode": {
                  "id": 7873,
                  "name": "IClaimIssuer",
                  "nameLocations": [
                    "1442:12:41"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 1456,
                  "src": "1442:12:41"
                },
                "referencedDeclaration": 1456,
                "src": "1442:12:41",
                "typeDescriptions": {
                  "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                  "typeString": "contract IClaimIssuer"
                }
              },
              "id": 7875,
              "nodeType": "ArrayTypeName",
              "src": "1442:14:41",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_contract$_IClaimIssuer_$1456_$dyn_storage_ptr",
                "typeString": "contract IClaimIssuer[]"
              }
            },
            "visibility": "private"
          },
          {
            "constant": false,
            "documentation": {
              "id": 7877,
              "nodeType": "StructuredDocumentation",
              "src": "1486:82:41",
              "text": "@dev Mapping between a trusted issuer index and its corresponding claimTopics."
            },
            "id": 7882,
            "mutability": "mutable",
            "name": "trustedIssuerClaimTopics",
            "nameLocation": "1611:24:41",
            "nodeType": "VariableDeclaration",
            "scope": 8213,
            "src": "1573:62:41",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",
              "typeString": "mapping(address => uint256[])"
            },
            "typeName": {
              "id": 7881,
              "keyType": {
                "id": 7878,
                "name": "address",
                "nodeType": "ElementaryTypeName",
                "src": "1581:7:41",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                }
              },
              "nodeType": "Mapping",
              "src": "1573:29:41",
              "typeDescriptions": {
                "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",
                "typeString": "mapping(address => uint256[])"
              },
              "valueType": {
                "baseType": {
                  "id": 7879,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "1592:7:41",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "id": 7880,
                "nodeType": "ArrayTypeName",
                "src": "1592:9:41",
                "typeDescriptions": {
                  "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                  "typeString": "uint256[]"
                }
              }
            },
            "visibility": "private"
          },
          {
            "baseFunctions": [
              6796
            ],
            "body": {
              "id": 7936,
              "nodeType": "Block",
              "src": "1835:384:41",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7904,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "baseExpression": {
                              "id": 7896,
                              "name": "trustedIssuerClaimTopics",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7882,
                              "src": "1853:24:41",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",
                                "typeString": "mapping(address => uint256[] storage ref)"
                              }
                            },
                            "id": 7901,
                            "indexExpression": {
                              "arguments": [
                                {
                                  "id": 7899,
                                  "name": "_trustedIssuer",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7886,
                                  "src": "1886:14:41",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                                    "typeString": "contract IClaimIssuer"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                                    "typeString": "contract IClaimIssuer"
                                  }
                                ],
                                "id": 7898,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "1878:7:41",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": {
                                  "id": 7897,
                                  "name": "address",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "1878:7:41",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 7900,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "1878:23:41",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "1853:49:41",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                              "typeString": "uint256[] storage ref"
                            }
                          },
                          "id": 7902,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "1903:6:41",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "1853:56:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 7903,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1913:1:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "1853:61:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "747275737465642049737375657220616c726561647920657869737473",
                        "id": 7905,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1916:31:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_4cb688b3c4a2dd0c26630ea7cacb1c02095c00734f9ed8a5d4e712c0fd8e7b82",
                          "typeString": "literal_string \"trusted Issuer already exists\""
                        },
                        "value": "trusted Issuer already exists"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_4cb688b3c4a2dd0c26630ea7cacb1c02095c00734f9ed8a5d4e712c0fd8e7b82",
                          "typeString": "literal_string \"trusted Issuer already exists\""
                        }
                      ],
                      "id": 7895,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "1845:7:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 7906,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1845:103:41",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7907,
                  "nodeType": "ExpressionStatement",
                  "src": "1845:103:41"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7912,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 7909,
                            "name": "_claimTopics",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7889,
                            "src": "1966:12:41",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 7910,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "1979:6:41",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "1966:19:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 7911,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "1988:1:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "1966:23:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "7472757374656420636c61696d20746f706963732063616e6e6f7420626520656d707479",
                        "id": 7913,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1991:38:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_c6a6ea1170336f754583b76f6b80f11e49a78299b0a6e7d3198454d9d1e2a277",
                          "typeString": "literal_string \"trusted claim topics cannot be empty\""
                        },
                        "value": "trusted claim topics cannot be empty"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_c6a6ea1170336f754583b76f6b80f11e49a78299b0a6e7d3198454d9d1e2a277",
                          "typeString": "literal_string \"trusted claim topics cannot be empty\""
                        }
                      ],
                      "id": 7908,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "1958:7:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 7914,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1958:72:41",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7915,
                  "nodeType": "ExpressionStatement",
                  "src": "1958:72:41"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 7919,
                        "name": "_trustedIssuer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7886,
                        "src": "2060:14:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                          "typeString": "contract IClaimIssuer"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                          "typeString": "contract IClaimIssuer"
                        }
                      ],
                      "expression": {
                        "id": 7916,
                        "name": "trustedIssuers",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7876,
                        "src": "2040:14:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_contract$_IClaimIssuer_$1456_$dyn_storage",
                          "typeString": "contract IClaimIssuer[] storage ref"
                        }
                      },
                      "id": 7918,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "2055:4:41",
                      "memberName": "push",
                      "nodeType": "MemberAccess",
                      "src": "2040:19:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_contract$_IClaimIssuer_$1456_$dyn_storage_ptr_$_t_contract$_IClaimIssuer_$1456_$returns$__$bound_to$_t_array$_t_contract$_IClaimIssuer_$1456_$dyn_storage_ptr_$",
                        "typeString": "function (contract IClaimIssuer[] storage pointer,contract IClaimIssuer)"
                      }
                    },
                    "id": 7920,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2040:35:41",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7921,
                  "nodeType": "ExpressionStatement",
                  "src": "2040:35:41"
                },
                {
                  "expression": {
                    "id": 7929,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 7922,
                        "name": "trustedIssuerClaimTopics",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7882,
                        "src": "2085:24:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",
                          "typeString": "mapping(address => uint256[] storage ref)"
                        }
                      },
                      "id": 7927,
                      "indexExpression": {
                        "arguments": [
                          {
                            "id": 7925,
                            "name": "_trustedIssuer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7886,
                            "src": "2118:14:41",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                              "typeString": "contract IClaimIssuer"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                              "typeString": "contract IClaimIssuer"
                            }
                          ],
                          "id": 7924,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2110:7:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 7923,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "2110:7:41",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 7926,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2110:23:41",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2085:49:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                        "typeString": "uint256[] storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 7928,
                      "name": "_claimTopics",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7889,
                      "src": "2137:12:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                        "typeString": "uint256[] calldata"
                      }
                    },
                    "src": "2085:64:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                      "typeString": "uint256[] storage ref"
                    }
                  },
                  "id": 7930,
                  "nodeType": "ExpressionStatement",
                  "src": "2085:64:41"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 7932,
                        "name": "_trustedIssuer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7886,
                        "src": "2183:14:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                          "typeString": "contract IClaimIssuer"
                        }
                      },
                      {
                        "id": 7933,
                        "name": "_claimTopics",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7889,
                        "src": "2199:12:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                          "typeString": "contract IClaimIssuer"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      ],
                      "id": 7931,
                      "name": "TrustedIssuerAdded",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6771,
                      "src": "2164:18:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_contract$_IClaimIssuer_$1456_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (contract IClaimIssuer,uint256[] memory)"
                      }
                    },
                    "id": 7934,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2164:48:41",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7935,
                  "nodeType": "EmitStatement",
                  "src": "2159:53:41"
                }
              ]
            },
            "documentation": {
              "id": 7883,
              "nodeType": "StructuredDocumentation",
              "src": "1642:72:41",
              "text": "  @dev See {ITrustedIssuersRegistry-addTrustedIssuer}."
            },
            "functionSelector": "9f63ea98",
            "id": 7937,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 7893,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 7892,
                  "name": "onlyOwner",
                  "nameLocations": [
                    "1825:9:41"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 2424,
                  "src": "1825:9:41"
                },
                "nodeType": "ModifierInvocation",
                "src": "1825:9:41"
              }
            ],
            "name": "addTrustedIssuer",
            "nameLocation": "1728:16:41",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7891,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1816:8:41"
            },
            "parameters": {
              "id": 7890,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7886,
                  "mutability": "mutable",
                  "name": "_trustedIssuer",
                  "nameLocation": "1758:14:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 7937,
                  "src": "1745:27:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                    "typeString": "contract IClaimIssuer"
                  },
                  "typeName": {
                    "id": 7885,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 7884,
                      "name": "IClaimIssuer",
                      "nameLocations": [
                        "1745:12:41"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 1456,
                      "src": "1745:12:41"
                    },
                    "referencedDeclaration": 1456,
                    "src": "1745:12:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                      "typeString": "contract IClaimIssuer"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 7889,
                  "mutability": "mutable",
                  "name": "_claimTopics",
                  "nameLocation": "1793:12:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 7937,
                  "src": "1774:31:41",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 7887,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "1774:7:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 7888,
                    "nodeType": "ArrayTypeName",
                    "src": "1774:9:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1744:62:41"
            },
            "returnParameters": {
              "id": 7894,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1835:0:41"
            },
            "scope": 8213,
            "src": "1719:500:41",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              6803
            ],
            "body": {
              "id": 8012,
              "nodeType": "Block",
              "src": "2391:536:41",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 7956,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "baseExpression": {
                              "id": 7948,
                              "name": "trustedIssuerClaimTopics",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7882,
                              "src": "2409:24:41",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",
                                "typeString": "mapping(address => uint256[] storage ref)"
                              }
                            },
                            "id": 7953,
                            "indexExpression": {
                              "arguments": [
                                {
                                  "id": 7951,
                                  "name": "_trustedIssuer",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7941,
                                  "src": "2442:14:41",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                                    "typeString": "contract IClaimIssuer"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                                    "typeString": "contract IClaimIssuer"
                                  }
                                ],
                                "id": 7950,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "2434:7:41",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": {
                                  "id": 7949,
                                  "name": "address",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "2434:7:41",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 7952,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "2434:23:41",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "2409:49:41",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                              "typeString": "uint256[] storage ref"
                            }
                          },
                          "id": 7954,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "2459:6:41",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "2409:56:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 7955,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2469:1:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "2409:61:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "747275737465642049737375657220646f65736e2774206578697374",
                        "id": 7957,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2472:31:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_15f0c9128dfa46bb95add130c371764e9c90d5f89c3e2a9b3ad56503a7919730",
                          "typeString": "literal_string \"trusted Issuer doesn't exist\""
                        },
                        "value": "trusted Issuer doesn't exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_15f0c9128dfa46bb95add130c371764e9c90d5f89c3e2a9b3ad56503a7919730",
                          "typeString": "literal_string \"trusted Issuer doesn't exist\""
                        }
                      ],
                      "id": 7947,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "2401:7:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 7958,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2401:103:41",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 7959,
                  "nodeType": "ExpressionStatement",
                  "src": "2401:103:41"
                },
                {
                  "assignments": [
                    7961
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 7961,
                      "mutability": "mutable",
                      "name": "length",
                      "nameLocation": "2522:6:41",
                      "nodeType": "VariableDeclaration",
                      "scope": 8012,
                      "src": "2514:14:41",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 7960,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "2514:7:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 7964,
                  "initialValue": {
                    "expression": {
                      "id": 7962,
                      "name": "trustedIssuers",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7876,
                      "src": "2531:14:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_contract$_IClaimIssuer_$1456_$dyn_storage",
                        "typeString": "contract IClaimIssuer[] storage ref"
                      }
                    },
                    "id": 7963,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "2546:6:41",
                    "memberName": "length",
                    "nodeType": "MemberAccess",
                    "src": "2531:21:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2514:38:41"
                },
                {
                  "body": {
                    "id": 7998,
                    "nodeType": "Block",
                    "src": "2599:205:41",
                    "statements": [
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                            "typeString": "contract IClaimIssuer"
                          },
                          "id": 7979,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "baseExpression": {
                              "id": 7975,
                              "name": "trustedIssuers",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7876,
                              "src": "2617:14:41",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_contract$_IClaimIssuer_$1456_$dyn_storage",
                                "typeString": "contract IClaimIssuer[] storage ref"
                              }
                            },
                            "id": 7977,
                            "indexExpression": {
                              "id": 7976,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7966,
                              "src": "2632:1:41",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "2617:17:41",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                              "typeString": "contract IClaimIssuer"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "id": 7978,
                            "name": "_trustedIssuer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7941,
                            "src": "2638:14:41",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                              "typeString": "contract IClaimIssuer"
                            }
                          },
                          "src": "2617:35:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 7997,
                        "nodeType": "IfStatement",
                        "src": "2613:181:41",
                        "trueBody": {
                          "id": 7996,
                          "nodeType": "Block",
                          "src": "2654:140:41",
                          "statements": [
                            {
                              "expression": {
                                "id": 7988,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "baseExpression": {
                                    "id": 7980,
                                    "name": "trustedIssuers",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7876,
                                    "src": "2672:14:41",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_contract$_IClaimIssuer_$1456_$dyn_storage",
                                      "typeString": "contract IClaimIssuer[] storage ref"
                                    }
                                  },
                                  "id": 7982,
                                  "indexExpression": {
                                    "id": 7981,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7966,
                                    "src": "2687:1:41",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "2672:17:41",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                                    "typeString": "contract IClaimIssuer"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "baseExpression": {
                                    "id": 7983,
                                    "name": "trustedIssuers",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7876,
                                    "src": "2692:14:41",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_contract$_IClaimIssuer_$1456_$dyn_storage",
                                      "typeString": "contract IClaimIssuer[] storage ref"
                                    }
                                  },
                                  "id": 7987,
                                  "indexExpression": {
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 7986,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "id": 7984,
                                      "name": "length",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7961,
                                      "src": "2707:6:41",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "-",
                                    "rightExpression": {
                                      "hexValue": "31",
                                      "id": 7985,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "2716:1:41",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_1_by_1",
                                        "typeString": "int_const 1"
                                      },
                                      "value": "1"
                                    },
                                    "src": "2707:10:41",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "2692:26:41",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                                    "typeString": "contract IClaimIssuer"
                                  }
                                },
                                "src": "2672:46:41",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                                  "typeString": "contract IClaimIssuer"
                                }
                              },
                              "id": 7989,
                              "nodeType": "ExpressionStatement",
                              "src": "2672:46:41"
                            },
                            {
                              "expression": {
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "id": 7990,
                                    "name": "trustedIssuers",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7876,
                                    "src": "2736:14:41",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_contract$_IClaimIssuer_$1456_$dyn_storage",
                                      "typeString": "contract IClaimIssuer[] storage ref"
                                    }
                                  },
                                  "id": 7992,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "2751:3:41",
                                  "memberName": "pop",
                                  "nodeType": "MemberAccess",
                                  "src": "2736:18:41",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_arraypop_nonpayable$_t_array$_t_contract$_IClaimIssuer_$1456_$dyn_storage_ptr_$returns$__$bound_to$_t_array$_t_contract$_IClaimIssuer_$1456_$dyn_storage_ptr_$",
                                    "typeString": "function (contract IClaimIssuer[] storage pointer)"
                                  }
                                },
                                "id": 7993,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "2736:20:41",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 7994,
                              "nodeType": "ExpressionStatement",
                              "src": "2736:20:41"
                            },
                            {
                              "id": 7995,
                              "nodeType": "Break",
                              "src": "2774:5:41"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 7971,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 7969,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7966,
                      "src": "2582:1:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "id": 7970,
                      "name": "length",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7961,
                      "src": "2586:6:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2582:10:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 7999,
                  "initializationExpression": {
                    "assignments": [
                      7966
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 7966,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "2575:1:41",
                        "nodeType": "VariableDeclaration",
                        "scope": 7999,
                        "src": "2567:9:41",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 7965,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "2567:7:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 7968,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 7967,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2579:1:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "2567:13:41"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 7973,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "2594:3:41",
                      "subExpression": {
                        "id": 7972,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7966,
                        "src": "2594:1:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 7974,
                    "nodeType": "ExpressionStatement",
                    "src": "2594:3:41"
                  },
                  "nodeType": "ForStatement",
                  "src": "2562:242:41"
                },
                {
                  "expression": {
                    "id": 8006,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "UnaryOperation",
                    "operator": "delete",
                    "prefix": true,
                    "src": "2813:56:41",
                    "subExpression": {
                      "baseExpression": {
                        "id": 8000,
                        "name": "trustedIssuerClaimTopics",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7882,
                        "src": "2820:24:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",
                          "typeString": "mapping(address => uint256[] storage ref)"
                        }
                      },
                      "id": 8005,
                      "indexExpression": {
                        "arguments": [
                          {
                            "id": 8003,
                            "name": "_trustedIssuer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7941,
                            "src": "2853:14:41",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                              "typeString": "contract IClaimIssuer"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                              "typeString": "contract IClaimIssuer"
                            }
                          ],
                          "id": 8002,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2845:7:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 8001,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "2845:7:41",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 8004,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2845:23:41",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "2820:49:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                        "typeString": "uint256[] storage ref"
                      }
                    },
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8007,
                  "nodeType": "ExpressionStatement",
                  "src": "2813:56:41"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 8009,
                        "name": "_trustedIssuer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7941,
                        "src": "2905:14:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                          "typeString": "contract IClaimIssuer"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                          "typeString": "contract IClaimIssuer"
                        }
                      ],
                      "id": 8008,
                      "name": "TrustedIssuerRemoved",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6777,
                      "src": "2884:20:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_contract$_IClaimIssuer_$1456_$returns$__$",
                        "typeString": "function (contract IClaimIssuer)"
                      }
                    },
                    "id": 8010,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2884:36:41",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8011,
                  "nodeType": "EmitStatement",
                  "src": "2879:41:41"
                }
              ]
            },
            "documentation": {
              "id": 7938,
              "nodeType": "StructuredDocumentation",
              "src": "2225:75:41",
              "text": "  @dev See {ITrustedIssuersRegistry-removeTrustedIssuer}."
            },
            "functionSelector": "b93d28eb",
            "id": 8013,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 7945,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 7944,
                  "name": "onlyOwner",
                  "nameLocations": [
                    "2381:9:41"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 2424,
                  "src": "2381:9:41"
                },
                "nodeType": "ModifierInvocation",
                "src": "2381:9:41"
              }
            ],
            "name": "removeTrustedIssuer",
            "nameLocation": "2314:19:41",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 7943,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2372:8:41"
            },
            "parameters": {
              "id": 7942,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 7941,
                  "mutability": "mutable",
                  "name": "_trustedIssuer",
                  "nameLocation": "2347:14:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 8013,
                  "src": "2334:27:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                    "typeString": "contract IClaimIssuer"
                  },
                  "typeName": {
                    "id": 7940,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 7939,
                      "name": "IClaimIssuer",
                      "nameLocations": [
                        "2334:12:41"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 1456,
                      "src": "2334:12:41"
                    },
                    "referencedDeclaration": 1456,
                    "src": "2334:12:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                      "typeString": "contract IClaimIssuer"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2333:29:41"
            },
            "returnParameters": {
              "id": 7946,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2391:0:41"
            },
            "scope": 8213,
            "src": "2305:622:41",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              6813
            ],
            "body": {
              "id": 8061,
              "nodeType": "Block",
              "src": "3140:331:41",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 8035,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "baseExpression": {
                              "id": 8027,
                              "name": "trustedIssuerClaimTopics",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7882,
                              "src": "3158:24:41",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",
                                "typeString": "mapping(address => uint256[] storage ref)"
                              }
                            },
                            "id": 8032,
                            "indexExpression": {
                              "arguments": [
                                {
                                  "id": 8030,
                                  "name": "_trustedIssuer",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8017,
                                  "src": "3191:14:41",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                                    "typeString": "contract IClaimIssuer"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                                    "typeString": "contract IClaimIssuer"
                                  }
                                ],
                                "id": 8029,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "3183:7:41",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": {
                                  "id": 8028,
                                  "name": "address",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "3183:7:41",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 8031,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3183:23:41",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "3158:49:41",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                              "typeString": "uint256[] storage ref"
                            }
                          },
                          "id": 8033,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "3208:6:41",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "3158:56:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 8034,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3218:1:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "3158:61:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "747275737465642049737375657220646f65736e2774206578697374",
                        "id": 8036,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3221:31:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_15f0c9128dfa46bb95add130c371764e9c90d5f89c3e2a9b3ad56503a7919730",
                          "typeString": "literal_string \"trusted Issuer doesn't exist\""
                        },
                        "value": "trusted Issuer doesn't exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_15f0c9128dfa46bb95add130c371764e9c90d5f89c3e2a9b3ad56503a7919730",
                          "typeString": "literal_string \"trusted Issuer doesn't exist\""
                        }
                      ],
                      "id": 8026,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "3150:7:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 8037,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3150:103:41",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8038,
                  "nodeType": "ExpressionStatement",
                  "src": "3150:103:41"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 8043,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "id": 8040,
                            "name": "_claimTopics",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8020,
                            "src": "3271:12:41",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                              "typeString": "uint256[] calldata"
                            }
                          },
                          "id": 8041,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "3284:6:41",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "3271:19:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": ">",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 8042,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "3293:1:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "3271:23:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "636c61696d20746f706963732063616e6e6f7420626520656d707479",
                        "id": 8044,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3296:30:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_d663cdfe6c385f3148232466f81c068a6fec44b27da3c9bf19d56295a7a2dc36",
                          "typeString": "literal_string \"claim topics cannot be empty\""
                        },
                        "value": "claim topics cannot be empty"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_d663cdfe6c385f3148232466f81c068a6fec44b27da3c9bf19d56295a7a2dc36",
                          "typeString": "literal_string \"claim topics cannot be empty\""
                        }
                      ],
                      "id": 8039,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "3263:7:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 8045,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3263:64:41",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8046,
                  "nodeType": "ExpressionStatement",
                  "src": "3263:64:41"
                },
                {
                  "expression": {
                    "id": 8054,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "baseExpression": {
                        "id": 8047,
                        "name": "trustedIssuerClaimTopics",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7882,
                        "src": "3337:24:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",
                          "typeString": "mapping(address => uint256[] storage ref)"
                        }
                      },
                      "id": 8052,
                      "indexExpression": {
                        "arguments": [
                          {
                            "id": 8050,
                            "name": "_trustedIssuer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8017,
                            "src": "3370:14:41",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                              "typeString": "contract IClaimIssuer"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                              "typeString": "contract IClaimIssuer"
                            }
                          ],
                          "id": 8049,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "3362:7:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": {
                            "id": 8048,
                            "name": "address",
                            "nodeType": "ElementaryTypeName",
                            "src": "3362:7:41",
                            "typeDescriptions": {}
                          }
                        },
                        "id": 8051,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "nameLocations": [],
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3362:23:41",
                        "tryCall": false,
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": true,
                      "nodeType": "IndexAccess",
                      "src": "3337:49:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                        "typeString": "uint256[] storage ref"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 8053,
                      "name": "_claimTopics",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8020,
                      "src": "3389:12:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                        "typeString": "uint256[] calldata"
                      }
                    },
                    "src": "3337:64:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                      "typeString": "uint256[] storage ref"
                    }
                  },
                  "id": 8055,
                  "nodeType": "ExpressionStatement",
                  "src": "3337:64:41"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 8057,
                        "name": "_trustedIssuer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8017,
                        "src": "3435:14:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                          "typeString": "contract IClaimIssuer"
                        }
                      },
                      {
                        "id": 8058,
                        "name": "_claimTopics",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8020,
                        "src": "3451:12:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                          "typeString": "contract IClaimIssuer"
                        },
                        {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                          "typeString": "uint256[] calldata"
                        }
                      ],
                      "id": 8056,
                      "name": "ClaimTopicsUpdated",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6786,
                      "src": "3416:18:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_contract$_IClaimIssuer_$1456_$_t_array$_t_uint256_$dyn_memory_ptr_$returns$__$",
                        "typeString": "function (contract IClaimIssuer,uint256[] memory)"
                      }
                    },
                    "id": 8059,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3416:48:41",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8060,
                  "nodeType": "EmitStatement",
                  "src": "3411:53:41"
                }
              ]
            },
            "documentation": {
              "id": 8014,
              "nodeType": "StructuredDocumentation",
              "src": "2933:79:41",
              "text": "  @dev See {ITrustedIssuersRegistry-updateIssuerClaimTopics}."
            },
            "functionSelector": "04bc7e84",
            "id": 8062,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 8024,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 8023,
                  "name": "onlyOwner",
                  "nameLocations": [
                    "3130:9:41"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 2424,
                  "src": "3130:9:41"
                },
                "nodeType": "ModifierInvocation",
                "src": "3130:9:41"
              }
            ],
            "name": "updateIssuerClaimTopics",
            "nameLocation": "3026:23:41",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 8022,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3121:8:41"
            },
            "parameters": {
              "id": 8021,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8017,
                  "mutability": "mutable",
                  "name": "_trustedIssuer",
                  "nameLocation": "3063:14:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 8062,
                  "src": "3050:27:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                    "typeString": "contract IClaimIssuer"
                  },
                  "typeName": {
                    "id": 8016,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 8015,
                      "name": "IClaimIssuer",
                      "nameLocations": [
                        "3050:12:41"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 1456,
                      "src": "3050:12:41"
                    },
                    "referencedDeclaration": 1456,
                    "src": "3050:12:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                      "typeString": "contract IClaimIssuer"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8020,
                  "mutability": "mutable",
                  "name": "_claimTopics",
                  "nameLocation": "3098:12:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 8062,
                  "src": "3079:31:41",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_calldata_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 8018,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "3079:7:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 8019,
                    "nodeType": "ArrayTypeName",
                    "src": "3079:9:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3049:62:41"
            },
            "returnParameters": {
              "id": 8025,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3140:0:41"
            },
            "scope": 8213,
            "src": "3017:454:41",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              6821
            ],
            "body": {
              "id": 8073,
              "nodeType": "Block",
              "src": "3639:38:41",
              "statements": [
                {
                  "expression": {
                    "id": 8071,
                    "name": "trustedIssuers",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 7876,
                    "src": "3656:14:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_contract$_IClaimIssuer_$1456_$dyn_storage",
                      "typeString": "contract IClaimIssuer[] storage ref"
                    }
                  },
                  "functionReturnParameters": 8070,
                  "id": 8072,
                  "nodeType": "Return",
                  "src": "3649:21:41"
                }
              ]
            },
            "documentation": {
              "id": 8063,
              "nodeType": "StructuredDocumentation",
              "src": "3477:73:41",
              "text": "  @dev See {ITrustedIssuersRegistry-getTrustedIssuers}."
            },
            "functionSelector": "d9dd24c5",
            "id": 8074,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getTrustedIssuers",
            "nameLocation": "3564:17:41",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 8065,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3598:8:41"
            },
            "parameters": {
              "id": 8064,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3581:2:41"
            },
            "returnParameters": {
              "id": 8070,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8069,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 8074,
                  "src": "3616:21:41",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_contract$_IClaimIssuer_$1456_$dyn_memory_ptr",
                    "typeString": "contract IClaimIssuer[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 8067,
                      "nodeType": "UserDefinedTypeName",
                      "pathNode": {
                        "id": 8066,
                        "name": "IClaimIssuer",
                        "nameLocations": [
                          "3616:12:41"
                        ],
                        "nodeType": "IdentifierPath",
                        "referencedDeclaration": 1456,
                        "src": "3616:12:41"
                      },
                      "referencedDeclaration": 1456,
                      "src": "3616:12:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                        "typeString": "contract IClaimIssuer"
                      }
                    },
                    "id": 8068,
                    "nodeType": "ArrayTypeName",
                    "src": "3616:14:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_contract$_IClaimIssuer_$1456_$dyn_storage_ptr",
                      "typeString": "contract IClaimIssuer[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3615:23:41"
            },
            "scope": 8213,
            "src": "3555:122:41",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              6829
            ],
            "body": {
              "id": 8114,
              "nodeType": "Block",
              "src": "3839:234:41",
              "statements": [
                {
                  "assignments": [
                    8084
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8084,
                      "mutability": "mutable",
                      "name": "length",
                      "nameLocation": "3857:6:41",
                      "nodeType": "VariableDeclaration",
                      "scope": 8114,
                      "src": "3849:14:41",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 8083,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "3849:7:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 8087,
                  "initialValue": {
                    "expression": {
                      "id": 8085,
                      "name": "trustedIssuers",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7876,
                      "src": "3866:14:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_contract$_IClaimIssuer_$1456_$dyn_storage",
                        "typeString": "contract IClaimIssuer[] storage ref"
                      }
                    },
                    "id": 8086,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "3881:6:41",
                    "memberName": "length",
                    "nodeType": "MemberAccess",
                    "src": "3866:21:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3849:38:41"
                },
                {
                  "body": {
                    "id": 8110,
                    "nodeType": "Block",
                    "src": "3934:111:41",
                    "statements": [
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 8105,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "arguments": [
                              {
                                "baseExpression": {
                                  "id": 8100,
                                  "name": "trustedIssuers",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7876,
                                  "src": "3960:14:41",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_contract$_IClaimIssuer_$1456_$dyn_storage",
                                    "typeString": "contract IClaimIssuer[] storage ref"
                                  }
                                },
                                "id": 8102,
                                "indexExpression": {
                                  "id": 8101,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8089,
                                  "src": "3975:1:41",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "3960:17:41",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                                  "typeString": "contract IClaimIssuer"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                                  "typeString": "contract IClaimIssuer"
                                }
                              ],
                              "id": 8099,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "3952:7:41",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": {
                                "id": 8098,
                                "name": "address",
                                "nodeType": "ElementaryTypeName",
                                "src": "3952:7:41",
                                "typeDescriptions": {}
                              }
                            },
                            "id": 8103,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "nameLocations": [],
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3952:26:41",
                            "tryCall": false,
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "id": 8104,
                            "name": "_issuer",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8077,
                            "src": "3982:7:41",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "src": "3952:37:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 8109,
                        "nodeType": "IfStatement",
                        "src": "3948:87:41",
                        "trueBody": {
                          "id": 8108,
                          "nodeType": "Block",
                          "src": "3991:44:41",
                          "statements": [
                            {
                              "expression": {
                                "hexValue": "74727565",
                                "id": 8106,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4016:4:41",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "true"
                              },
                              "functionReturnParameters": 8082,
                              "id": 8107,
                              "nodeType": "Return",
                              "src": "4009:11:41"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 8094,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 8092,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8089,
                      "src": "3917:1:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "id": 8093,
                      "name": "length",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8084,
                      "src": "3921:6:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3917:10:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 8111,
                  "initializationExpression": {
                    "assignments": [
                      8089
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 8089,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "3910:1:41",
                        "nodeType": "VariableDeclaration",
                        "scope": 8111,
                        "src": "3902:9:41",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 8088,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "3902:7:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 8091,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 8090,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "3914:1:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "3902:13:41"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 8096,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "3929:3:41",
                      "subExpression": {
                        "id": 8095,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8089,
                        "src": "3929:1:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 8097,
                    "nodeType": "ExpressionStatement",
                    "src": "3929:3:41"
                  },
                  "nodeType": "ForStatement",
                  "src": "3897:148:41"
                },
                {
                  "expression": {
                    "hexValue": "66616c7365",
                    "id": 8112,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "4061:5:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "false"
                  },
                  "functionReturnParameters": 8082,
                  "id": 8113,
                  "nodeType": "Return",
                  "src": "4054:12:41"
                }
              ]
            },
            "documentation": {
              "id": 8075,
              "nodeType": "StructuredDocumentation",
              "src": "3683:71:41",
              "text": "  @dev See {ITrustedIssuersRegistry-isTrustedIssuer}."
            },
            "functionSelector": "ef2ed1a4",
            "id": 8115,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "isTrustedIssuer",
            "nameLocation": "3768:15:41",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 8079,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3815:8:41"
            },
            "parameters": {
              "id": 8078,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8077,
                  "mutability": "mutable",
                  "name": "_issuer",
                  "nameLocation": "3792:7:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 8115,
                  "src": "3784:15:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 8076,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3784:7:41",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3783:17:41"
            },
            "returnParameters": {
              "id": 8082,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8081,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 8115,
                  "src": "3833:4:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 8080,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "3833:4:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3832:6:41"
            },
            "scope": 8213,
            "src": "3759:314:41",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              6839
            ],
            "body": {
              "id": 8146,
              "nodeType": "Block",
              "src": "4283:186:41",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 8135,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "expression": {
                            "baseExpression": {
                              "id": 8127,
                              "name": "trustedIssuerClaimTopics",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7882,
                              "src": "4301:24:41",
                              "typeDescriptions": {
                                "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",
                                "typeString": "mapping(address => uint256[] storage ref)"
                              }
                            },
                            "id": 8132,
                            "indexExpression": {
                              "arguments": [
                                {
                                  "id": 8130,
                                  "name": "_trustedIssuer",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 8119,
                                  "src": "4334:14:41",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                                    "typeString": "contract IClaimIssuer"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                                    "typeString": "contract IClaimIssuer"
                                  }
                                ],
                                "id": 8129,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "lValueRequested": false,
                                "nodeType": "ElementaryTypeNameExpression",
                                "src": "4326:7:41",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_address_$",
                                  "typeString": "type(address)"
                                },
                                "typeName": {
                                  "id": 8128,
                                  "name": "address",
                                  "nodeType": "ElementaryTypeName",
                                  "src": "4326:7:41",
                                  "typeDescriptions": {}
                                }
                              },
                              "id": 8131,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "typeConversion",
                              "lValueRequested": false,
                              "nameLocations": [],
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "4326:23:41",
                              "tryCall": false,
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4301:49:41",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                              "typeString": "uint256[] storage ref"
                            }
                          },
                          "id": 8133,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberLocation": "4351:6:41",
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "4301:56:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 8134,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "4361:1:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "4301:61:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "747275737465642049737375657220646f65736e2774206578697374",
                        "id": 8136,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "4364:31:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_15f0c9128dfa46bb95add130c371764e9c90d5f89c3e2a9b3ad56503a7919730",
                          "typeString": "literal_string \"trusted Issuer doesn't exist\""
                        },
                        "value": "trusted Issuer doesn't exist"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_15f0c9128dfa46bb95add130c371764e9c90d5f89c3e2a9b3ad56503a7919730",
                          "typeString": "literal_string \"trusted Issuer doesn't exist\""
                        }
                      ],
                      "id": 8126,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        4294967278,
                        4294967278
                      ],
                      "referencedDeclaration": 4294967278,
                      "src": "4293:7:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 8137,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4293:103:41",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8138,
                  "nodeType": "ExpressionStatement",
                  "src": "4293:103:41"
                },
                {
                  "expression": {
                    "baseExpression": {
                      "id": 8139,
                      "name": "trustedIssuerClaimTopics",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7882,
                      "src": "4413:24:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",
                        "typeString": "mapping(address => uint256[] storage ref)"
                      }
                    },
                    "id": 8144,
                    "indexExpression": {
                      "arguments": [
                        {
                          "id": 8142,
                          "name": "_trustedIssuer",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 8119,
                          "src": "4446:14:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                            "typeString": "contract IClaimIssuer"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                            "typeString": "contract IClaimIssuer"
                          }
                        ],
                        "id": 8141,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "lValueRequested": false,
                        "nodeType": "ElementaryTypeNameExpression",
                        "src": "4438:7:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_address_$",
                          "typeString": "type(address)"
                        },
                        "typeName": {
                          "id": 8140,
                          "name": "address",
                          "nodeType": "ElementaryTypeName",
                          "src": "4438:7:41",
                          "typeDescriptions": {}
                        }
                      },
                      "id": 8143,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "nameLocations": [],
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4438:23:41",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4413:49:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                      "typeString": "uint256[] storage ref"
                    }
                  },
                  "functionReturnParameters": 8125,
                  "id": 8145,
                  "nodeType": "Return",
                  "src": "4406:56:41"
                }
              ]
            },
            "documentation": {
              "id": 8116,
              "nodeType": "StructuredDocumentation",
              "src": "4079:83:41",
              "text": "  @dev See {ITrustedIssuersRegistry-getTrustedIssuerClaimTopics}."
            },
            "functionSelector": "c28fb278",
            "id": 8147,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getTrustedIssuerClaimTopics",
            "nameLocation": "4176:27:41",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 8121,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4247:8:41"
            },
            "parameters": {
              "id": 8120,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8119,
                  "mutability": "mutable",
                  "name": "_trustedIssuer",
                  "nameLocation": "4217:14:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 8147,
                  "src": "4204:27:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                    "typeString": "contract IClaimIssuer"
                  },
                  "typeName": {
                    "id": 8118,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 8117,
                      "name": "IClaimIssuer",
                      "nameLocations": [
                        "4204:12:41"
                      ],
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 1456,
                      "src": "4204:12:41"
                    },
                    "referencedDeclaration": 1456,
                    "src": "4204:12:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IClaimIssuer_$1456",
                      "typeString": "contract IClaimIssuer"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4203:29:41"
            },
            "returnParameters": {
              "id": 8125,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8124,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 8147,
                  "src": "4265:16:41",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 8122,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "4265:7:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 8123,
                    "nodeType": "ArrayTypeName",
                    "src": "4265:9:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4264:18:41"
            },
            "scope": 8213,
            "src": "4167:302:41",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              6849
            ],
            "body": {
              "id": 8197,
              "nodeType": "Block",
              "src": "4648:319:41",
              "statements": [
                {
                  "assignments": [
                    8159
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8159,
                      "mutability": "mutable",
                      "name": "length",
                      "nameLocation": "4666:6:41",
                      "nodeType": "VariableDeclaration",
                      "scope": 8197,
                      "src": "4658:14:41",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 8158,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "4658:7:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 8164,
                  "initialValue": {
                    "expression": {
                      "baseExpression": {
                        "id": 8160,
                        "name": "trustedIssuerClaimTopics",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7882,
                        "src": "4675:24:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",
                          "typeString": "mapping(address => uint256[] storage ref)"
                        }
                      },
                      "id": 8162,
                      "indexExpression": {
                        "id": 8161,
                        "name": "_issuer",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8150,
                        "src": "4700:7:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "isConstant": false,
                      "isLValue": true,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "IndexAccess",
                      "src": "4675:33:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                        "typeString": "uint256[] storage ref"
                      }
                    },
                    "id": 8163,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "4709:6:41",
                    "memberName": "length",
                    "nodeType": "MemberAccess",
                    "src": "4675:40:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4658:57:41"
                },
                {
                  "assignments": [
                    8169
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 8169,
                      "mutability": "mutable",
                      "name": "claimTopics",
                      "nameLocation": "4742:11:41",
                      "nodeType": "VariableDeclaration",
                      "scope": 8197,
                      "src": "4725:28:41",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                        "typeString": "uint256[]"
                      },
                      "typeName": {
                        "baseType": {
                          "id": 8167,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "4725:7:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "id": 8168,
                        "nodeType": "ArrayTypeName",
                        "src": "4725:9:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                          "typeString": "uint256[]"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 8173,
                  "initialValue": {
                    "baseExpression": {
                      "id": 8170,
                      "name": "trustedIssuerClaimTopics",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7882,
                      "src": "4756:24:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_mapping$_t_address_$_t_array$_t_uint256_$dyn_storage_$",
                        "typeString": "mapping(address => uint256[] storage ref)"
                      }
                    },
                    "id": 8172,
                    "indexExpression": {
                      "id": 8171,
                      "name": "_issuer",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8150,
                      "src": "4781:7:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "4756:33:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                      "typeString": "uint256[] storage ref"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4725:64:41"
                },
                {
                  "body": {
                    "id": 8193,
                    "nodeType": "Block",
                    "src": "4836:103:41",
                    "statements": [
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 8188,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "baseExpression": {
                              "id": 8184,
                              "name": "claimTopics",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8169,
                              "src": "4854:11:41",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                                "typeString": "uint256[] memory"
                              }
                            },
                            "id": 8186,
                            "indexExpression": {
                              "id": 8185,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 8175,
                              "src": "4866:1:41",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "4854:14:41",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "id": 8187,
                            "name": "_claimTopic",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 8152,
                            "src": "4872:11:41",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "4854:29:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 8192,
                        "nodeType": "IfStatement",
                        "src": "4850:79:41",
                        "trueBody": {
                          "id": 8191,
                          "nodeType": "Block",
                          "src": "4885:44:41",
                          "statements": [
                            {
                              "expression": {
                                "hexValue": "74727565",
                                "id": 8189,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "bool",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "4910:4:41",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                },
                                "value": "true"
                              },
                              "functionReturnParameters": 8157,
                              "id": 8190,
                              "nodeType": "Return",
                              "src": "4903:11:41"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 8180,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 8178,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8175,
                      "src": "4819:1:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "id": 8179,
                      "name": "length",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 8159,
                      "src": "4823:6:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "4819:10:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 8194,
                  "initializationExpression": {
                    "assignments": [
                      8175
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 8175,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "4812:1:41",
                        "nodeType": "VariableDeclaration",
                        "scope": 8194,
                        "src": "4804:9:41",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 8174,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "4804:7:41",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 8177,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 8176,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "4816:1:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "4804:13:41"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 8182,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "4831:3:41",
                      "subExpression": {
                        "id": 8181,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8175,
                        "src": "4831:1:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 8183,
                    "nodeType": "ExpressionStatement",
                    "src": "4831:3:41"
                  },
                  "nodeType": "ForStatement",
                  "src": "4799:140:41"
                },
                {
                  "expression": {
                    "hexValue": "66616c7365",
                    "id": 8195,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "4955:5:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "false"
                  },
                  "functionReturnParameters": 8157,
                  "id": 8196,
                  "nodeType": "Return",
                  "src": "4948:12:41"
                }
              ]
            },
            "documentation": {
              "id": 8148,
              "nodeType": "StructuredDocumentation",
              "src": "4475:69:41",
              "text": "  @dev See {ITrustedIssuersRegistry-hasClaimTopic}."
            },
            "functionSelector": "34a89987",
            "id": 8198,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "hasClaimTopic",
            "nameLocation": "4558:13:41",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 8154,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4624:8:41"
            },
            "parameters": {
              "id": 8153,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8150,
                  "mutability": "mutable",
                  "name": "_issuer",
                  "nameLocation": "4580:7:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 8198,
                  "src": "4572:15:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 8149,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "4572:7:41",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 8152,
                  "mutability": "mutable",
                  "name": "_claimTopic",
                  "nameLocation": "4597:11:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 8198,
                  "src": "4589:19:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 8151,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4589:7:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4571:38:41"
            },
            "returnParameters": {
              "id": 8157,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8156,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 8198,
                  "src": "4642:4:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 8155,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4642:4:41",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4641:6:41"
            },
            "scope": 8213,
            "src": "4549:418:41",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              6855
            ],
            "body": {
              "id": 8211,
              "nodeType": "Block",
              "src": "5175:45:41",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 8208,
                        "name": "_newOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 8201,
                        "src": "5203:9:41",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 8207,
                      "name": "transferOwnership",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2484,
                      "src": "5185:17:41",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 8209,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5185:28:41",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 8210,
                  "nodeType": "ExpressionStatement",
                  "src": "5185:28:41"
                }
              ]
            },
            "documentation": {
              "id": 8199,
              "nodeType": "StructuredDocumentation",
              "src": "4973:98:41",
              "text": "  @dev See {ITrustedIssuersRegistry-transferOwnershipOnIssuersRegistryContract}."
            },
            "functionSelector": "e36dce28",
            "id": 8212,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 8205,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 8204,
                  "name": "onlyOwner",
                  "nameLocations": [
                    "5165:9:41"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 2424,
                  "src": "5165:9:41"
                },
                "nodeType": "ModifierInvocation",
                "src": "5165:9:41"
              }
            ],
            "name": "transferOwnershipOnIssuersRegistryContract",
            "nameLocation": "5085:42:41",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 8203,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5156:8:41"
            },
            "parameters": {
              "id": 8202,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 8201,
                  "mutability": "mutable",
                  "name": "_newOwner",
                  "nameLocation": "5136:9:41",
                  "nodeType": "VariableDeclaration",
                  "scope": 8212,
                  "src": "5128:17:41",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 8200,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "5128:7:41",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5127:19:41"
            },
            "returnParameters": {
              "id": 8206,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5175:0:41"
            },
            "scope": 8213,
            "src": "5076:144:41",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 8214,
        "src": "1292:3930:41",
        "usedErrors": []
      }
    ],
    "src": "1093:4130:41"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.17+commit.8df45f5f.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.8",
  "updatedAt": "2022-12-08T12:51:01.382Z",
  "devdoc": {
    "kind": "dev",
    "methods": {
      "addTrustedIssuer(address,uint256[])": {
        "details": "See {ITrustedIssuersRegistry-addTrustedIssuer}."
      },
      "getTrustedIssuerClaimTopics(address)": {
        "details": "See {ITrustedIssuersRegistry-getTrustedIssuerClaimTopics}."
      },
      "getTrustedIssuers()": {
        "details": "See {ITrustedIssuersRegistry-getTrustedIssuers}."
      },
      "hasClaimTopic(address,uint256)": {
        "details": "See {ITrustedIssuersRegistry-hasClaimTopic}."
      },
      "isTrustedIssuer(address)": {
        "details": "See {ITrustedIssuersRegistry-isTrustedIssuer}."
      },
      "owner()": {
        "details": "Returns the address of the current owner."
      },
      "removeTrustedIssuer(address)": {
        "details": "See {ITrustedIssuersRegistry-removeTrustedIssuer}."
      },
      "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."
      },
      "transferOwnership(address)": {
        "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
      },
      "transferOwnershipOnIssuersRegistryContract(address)": {
        "details": "See {ITrustedIssuersRegistry-transferOwnershipOnIssuersRegistryContract}."
      },
      "updateIssuerClaimTopics(address,uint256[])": {
        "details": "See {ITrustedIssuersRegistry-updateIssuerClaimTopics}."
      }
    },
    "stateVariables": {
      "trustedIssuerClaimTopics": {
        "details": "Mapping between a trusted issuer index and its corresponding claimTopics."
      },
      "trustedIssuers": {
        "details": "Array containing all TrustedIssuers identity contract address."
      }
    },
    "version": 1
  },
  "userdoc": {
    "events": {
      "ClaimTopicsUpdated(address,uint256[])": {
        "notice": "this event is emitted when the set of claim topics is changed for a given trusted issuer.  the event is emitted by the updateIssuerClaimTopics function  `trustedIssuer` is the address of the trusted issuer's ClaimIssuer contract  `claimTopics` is the set of claims that the trusted issuer is allowed to emit"
      },
      "TrustedIssuerAdded(address,uint256[])": {
        "notice": "this event is emitted when a trusted issuer is added in the registry.  the event is emitted by the addTrustedIssuer function  `trustedIssuer` is the address of the trusted issuer's ClaimIssuer contract  `claimTopics` is the set of claims that the trusted issuer is allowed to emit"
      },
      "TrustedIssuerRemoved(address)": {
        "notice": "this event is emitted when a trusted issuer is removed from the registry.  the event is emitted by the removeTrustedIssuer function  `trustedIssuer` is the address of the trusted issuer's ClaimIssuer contract"
      }
    },
    "kind": "user",
    "methods": {},
    "version": 1
  }
}