{
  "contractName": "ClaimTopicsRegistry",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "claimTopic",
          "type": "uint256"
        }
      ],
      "name": "ClaimTopicAdded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "claimTopic",
          "type": "uint256"
        }
      ],
      "name": "ClaimTopicRemoved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "inputs": [],
      "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": "uint256",
          "name": "_claimTopic",
          "type": "uint256"
        }
      ],
      "name": "addClaimTopic",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_claimTopic",
          "type": "uint256"
        }
      ],
      "name": "removeClaimTopic",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getClaimTopics",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "",
          "type": "uint256[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnershipOnClaimTopicsRegistryContract",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.8.17+commit.8df45f5f\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"claimTopic\",\"type\":\"uint256\"}],\"name\":\"ClaimTopicAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"claimTopic\",\"type\":\"uint256\"}],\"name\":\"ClaimTopicRemoved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"address\",\"name\":\"previousOwner\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"OwnershipTransferred\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_claimTopic\",\"type\":\"uint256\"}],\"name\":\"addClaimTopic\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getClaimTopics\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"\",\"type\":\"uint256[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"owner\",\"outputs\":[{\"internalType\":\"address\",\"name\":\"\",\"type\":\"address\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_claimTopic\",\"type\":\"uint256\"}],\"name\":\"removeClaimTopic\",\"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\":\"transferOwnershipOnClaimTopicsRegistryContract\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"kind\":\"dev\",\"methods\":{\"addClaimTopic(uint256)\":{\"details\":\"See {IClaimTopicsRegistry-addClaimTopic}.\"},\"getClaimTopics()\":{\"details\":\"See {IClaimTopicsRegistry-getClaimTopics}.\"},\"owner()\":{\"details\":\"Returns the address of the current owner.\"},\"removeClaimTopic(uint256)\":{\"details\":\"See {IClaimTopicsRegistry-removeClaimTopic}.\"},\"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.\"},\"transferOwnershipOnClaimTopicsRegistryContract(address)\":{\"details\":\"See {IClaimTopicsRegistry-transferOwnershipOnClaimTopicsRegistryContract}.\"}},\"stateVariables\":{\"claimTopics\":{\"details\":\"All required Claim Topics\"}},\"version\":1},\"userdoc\":{\"events\":{\"ClaimTopicAdded(uint256)\":{\"notice\":\"this event is emitted when a claim topic has been added to the ClaimTopicsRegistry  the event is emitted by the 'addClaimTopic' function  `claimTopic` is the required claim added to the Claim Topics Registry\"},\"ClaimTopicRemoved(uint256)\":{\"notice\":\"this event is emitted when a claim topic has been removed from the ClaimTopicsRegistry  the event is emitted by the 'removeClaimTopic' function  `claimTopic` is the required claim removed from the Claim Topics Registry\"}},\"kind\":\"user\",\"methods\":{},\"version\":1}},\"settings\":{\"compilationTarget\":{\"project:/contracts/registry/ClaimTopicsRegistry.sol\":\"ClaimTopicsRegistry\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":10},\"remappings\":[]},\"sources\":{\"@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/ClaimTopicsRegistry.sol\":{\"keccak256\":\"0x27e1d03b60423a957fc841aa7ff0d4b1538b6f2d5f5891e21b7147f767e89fac\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://dd4d39c443fd16883ffcfe9fe19943a13ffde53de2aa5595f3c5db559fd1a9e2\",\"dweb:/ipfs/QmXA4vp4YozVQkjitT6SAgLMBLMrGyEE8SgZ3UDoUR6hMs\"]},\"project:/contracts/registry/IClaimTopicsRegistry.sol\":{\"keccak256\":\"0x95f8fa17a716771125b203f00890eceb20ac3807f7a39a25b644427b1ff81d61\",\"license\":\"GPL-3.0\",\"urls\":[\"bzz-raw://460dceb9e88957d5ce002b80748767c80a7e146c9b38b055a3c1ca04586b2009\",\"dweb:/ipfs/QmVdqEpGMRzSpLKBCtPzaPGatBgUyNm3NS5rQnkkYMnc1C\"]}},\"version\":1}",
  "bytecode": "0x608060405234801561001057600080fd5b5061001a3361001f565b61006f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6105d28061007e6000396000f3fe608060405234801561001057600080fd5b506004361061006d5760003560e01c80630829784614610072578063715018a6146100875780638da5cb5b1461008f578063c7b22551146100b4578063d5144472146100c7578063df09d604146100da578063f2fde38b146100ef575b600080fd5b61008561008036600461049b565b610102565b005b6100856101f2565b610097610206565b6040516001600160a01b0390911681526020015b60405180910390f35b6100856100c236600461049b565b610215565b6100856100d53660046104b4565b61030a565b6100e261031e565b6040516100ab91906104e4565b6100856100fd3660046104b4565b610376565b61010a6103ec565b60015460005b818110156101ed57826001828154811061012c5761012c610528565b9060005260206000200154036101db5760016101488184610554565b8154811061015857610158610528565b90600052602060002001546001828154811061017657610176610528565b60009182526020909120015560018054806101935761019361056d565b60019003818190600052602060002001600090559055827f0b1381093c776453c1bbe54fd68be1b235c65db61d099cb50d194b2991e0eec560405160405180910390a2505050565b806101e581610583565b915050610110565b505050565b6101fa6103ec565b610204600061044b565b565b6000546001600160a01b031690565b61021d6103ec565b60015460005b818110156102aa57826001828154811061023f5761023f610528565b9060005260206000200154036102985760405162461bcd60e51b8152602060048201526019602482015278636c61696d546f70696320616c72656164792065786973747360381b60448201526064015b60405180910390fd5b806102a281610583565b915050610223565b5060018054808201825560009182527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60183905560405183917f01c928b7f7ade2949e92366aa9454dbef3a416b731cf6ec786ba9595bbd814d691a25050565b6103126103ec565b61031b81610376565b50565b6060600180548060200260200160405190810160405280929190818152602001828054801561036c57602002820191906000526020600020905b815481526020019060010190808311610358575b5050505050905090565b61037e6103ec565b6001600160a01b0381166103e35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161028f565b61031b8161044b565b336103f5610206565b6001600160a01b0316146102045760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161028f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156104ad57600080fd5b5035919050565b6000602082840312156104c657600080fd5b81356001600160a01b03811681146104dd57600080fd5b9392505050565b6020808252825182820181905260009190848201906040850190845b8181101561051c57835183529284019291840191600101610500565b50909695505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b818103818111156105675761056761053e565b92915050565b634e487b7160e01b600052603160045260246000fd5b6000600182016105955761059561053e565b506001019056fea2646970667358221220a78a451c1b3d166bef39ca48e02f82b4494847fc7fe085f9a619d95f9a4fb1aa64736f6c63430008110033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061006d5760003560e01c80630829784614610072578063715018a6146100875780638da5cb5b1461008f578063c7b22551146100b4578063d5144472146100c7578063df09d604146100da578063f2fde38b146100ef575b600080fd5b61008561008036600461049b565b610102565b005b6100856101f2565b610097610206565b6040516001600160a01b0390911681526020015b60405180910390f35b6100856100c236600461049b565b610215565b6100856100d53660046104b4565b61030a565b6100e261031e565b6040516100ab91906104e4565b6100856100fd3660046104b4565b610376565b61010a6103ec565b60015460005b818110156101ed57826001828154811061012c5761012c610528565b9060005260206000200154036101db5760016101488184610554565b8154811061015857610158610528565b90600052602060002001546001828154811061017657610176610528565b60009182526020909120015560018054806101935761019361056d565b60019003818190600052602060002001600090559055827f0b1381093c776453c1bbe54fd68be1b235c65db61d099cb50d194b2991e0eec560405160405180910390a2505050565b806101e581610583565b915050610110565b505050565b6101fa6103ec565b610204600061044b565b565b6000546001600160a01b031690565b61021d6103ec565b60015460005b818110156102aa57826001828154811061023f5761023f610528565b9060005260206000200154036102985760405162461bcd60e51b8152602060048201526019602482015278636c61696d546f70696320616c72656164792065786973747360381b60448201526064015b60405180910390fd5b806102a281610583565b915050610223565b5060018054808201825560009182527fb10e2d527612073b26eecdfd717e6a320cf44b4afac2b0732d9fcbe2b7fa0cf60183905560405183917f01c928b7f7ade2949e92366aa9454dbef3a416b731cf6ec786ba9595bbd814d691a25050565b6103126103ec565b61031b81610376565b50565b6060600180548060200260200160405190810160405280929190818152602001828054801561036c57602002820191906000526020600020905b815481526020019060010190808311610358575b5050505050905090565b61037e6103ec565b6001600160a01b0381166103e35760405162461bcd60e51b815260206004820152602660248201527f4f776e61626c653a206e6577206f776e657220697320746865207a65726f206160448201526564647265737360d01b606482015260840161028f565b61031b8161044b565b336103f5610206565b6001600160a01b0316146102045760405162461bcd60e51b815260206004820181905260248201527f4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572604482015260640161028f565b600080546001600160a01b038381166001600160a01b0319831681178455604051919092169283917f8be0079c531659141344cd1fd0a4f28419497f9722a3daafe3b4186f6b6457e09190a35050565b6000602082840312156104ad57600080fd5b5035919050565b6000602082840312156104c657600080fd5b81356001600160a01b03811681146104dd57600080fd5b9392505050565b6020808252825182820181905260009190848201906040850190845b8181101561051c57835183529284019291840191600101610500565b50909695505050505050565b634e487b7160e01b600052603260045260246000fd5b634e487b7160e01b600052601160045260246000fd5b818103818111156105675761056761053e565b92915050565b634e487b7160e01b600052603160045260246000fd5b6000600182016105955761059561053e565b506001019056fea2646970667358221220a78a451c1b3d166bef39ca48e02f82b4494847fc7fe085f9a619d95f9a4fb1aa64736f6c63430008110033",
  "immutableReferences": {},
  "generatedSources": [],
  "deployedGeneratedSources": [
    {
      "ast": {
        "nodeType": "YulBlock",
        "src": "0:3123:54",
        "statements": [
          {
            "nodeType": "YulBlock",
            "src": "6:3:54",
            "statements": []
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "84:110:54",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "130:16:54",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "139:1:54",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "142:1:54",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "132:6:54"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "132:12:54"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "132:12:54"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "105:7:54"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "114:9:54"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "101:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "101:23:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "126:2:54",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "97:3:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "97:32:54"
                  },
                  "nodeType": "YulIf",
                  "src": "94:52:54"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "155:33:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "178:9:54"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "165:12:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "165:23:54"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "155:6:54"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "50:9:54",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "61:7:54",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "73:6:54",
                "type": ""
              }
            ],
            "src": "14:180:54"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "300:102:54",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "310:26:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "322:9:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "333:2:54",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "318:3:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "318:18:54"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "310:4:54"
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "352:9:54"
                      },
                      {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "367:6:54"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "383:3:54",
                                    "type": "",
                                    "value": "160"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "388:1:54",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "shl",
                                  "nodeType": "YulIdentifier",
                                  "src": "379:3:54"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "379:11:54"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "392:1:54",
                                "type": "",
                                "value": "1"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "375:3:54"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "375:19:54"
                          }
                        ],
                        "functionName": {
                          "name": "and",
                          "nodeType": "YulIdentifier",
                          "src": "363:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "363:32:54"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "345:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "345:51:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "345:51:54"
                }
              ]
            },
            "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "269:9:54",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "280:6:54",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "291:4:54",
                "type": ""
              }
            ],
            "src": "199:203:54"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "477:216:54",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "523:16:54",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "532:1:54",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "535:1:54",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "525:6:54"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "525:12:54"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "525:12:54"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "dataEnd",
                            "nodeType": "YulIdentifier",
                            "src": "498:7:54"
                          },
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "507:9:54"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "494:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "494:23:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "519:2:54",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "slt",
                      "nodeType": "YulIdentifier",
                      "src": "490:3:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "490:32:54"
                  },
                  "nodeType": "YulIf",
                  "src": "487:52:54"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "548:36:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "574:9:54"
                      }
                    ],
                    "functionName": {
                      "name": "calldataload",
                      "nodeType": "YulIdentifier",
                      "src": "561:12:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "561:23:54"
                  },
                  "variables": [
                    {
                      "name": "value",
                      "nodeType": "YulTypedName",
                      "src": "552:5:54",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "647:16:54",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "656:1:54",
                              "type": "",
                              "value": "0"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "659:1:54",
                              "type": "",
                              "value": "0"
                            }
                          ],
                          "functionName": {
                            "name": "revert",
                            "nodeType": "YulIdentifier",
                            "src": "649:6:54"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "649:12:54"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "649:12:54"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "606:5:54"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "617:5:54"
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "632:3:54",
                                        "type": "",
                                        "value": "160"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "637:1:54",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nodeType": "YulIdentifier",
                                      "src": "628:3:54"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "628:11:54"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "641:1:54",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "sub",
                                  "nodeType": "YulIdentifier",
                                  "src": "624:3:54"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "624:19:54"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "613:3:54"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "613:31:54"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "603:2:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "603:42:54"
                      }
                    ],
                    "functionName": {
                      "name": "iszero",
                      "nodeType": "YulIdentifier",
                      "src": "596:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "596:50:54"
                  },
                  "nodeType": "YulIf",
                  "src": "593:70:54"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "672:15:54",
                  "value": {
                    "name": "value",
                    "nodeType": "YulIdentifier",
                    "src": "682:5:54"
                  },
                  "variableNames": [
                    {
                      "name": "value0",
                      "nodeType": "YulIdentifier",
                      "src": "672:6:54"
                    }
                  ]
                }
              ]
            },
            "name": "abi_decode_tuple_t_address",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "443:9:54",
                "type": ""
              },
              {
                "name": "dataEnd",
                "nodeType": "YulTypedName",
                "src": "454:7:54",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "466:6:54",
                "type": ""
              }
            ],
            "src": "407:286:54"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "849:481:54",
              "statements": [
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "859:12:54",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "869:2:54",
                    "type": "",
                    "value": "32"
                  },
                  "variables": [
                    {
                      "name": "_1",
                      "nodeType": "YulTypedName",
                      "src": "863:2:54",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "880:32:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "898:9:54"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "909:2:54"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "894:3:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "894:18:54"
                  },
                  "variables": [
                    {
                      "name": "tail_1",
                      "nodeType": "YulTypedName",
                      "src": "884:6:54",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "928:9:54"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "939:2:54"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "921:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "921:21:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "921:21:54"
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "951:17:54",
                  "value": {
                    "name": "tail_1",
                    "nodeType": "YulIdentifier",
                    "src": "962:6:54"
                  },
                  "variables": [
                    {
                      "name": "pos",
                      "nodeType": "YulTypedName",
                      "src": "955:3:54",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "977:27:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "997:6:54"
                      }
                    ],
                    "functionName": {
                      "name": "mload",
                      "nodeType": "YulIdentifier",
                      "src": "991:5:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "991:13:54"
                  },
                  "variables": [
                    {
                      "name": "length",
                      "nodeType": "YulTypedName",
                      "src": "981:6:54",
                      "type": ""
                    }
                  ]
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "1020:6:54"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "1028:6:54"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1013:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1013:22:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1013:22:54"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1044:25:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "1055:9:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1066:2:54",
                        "type": "",
                        "value": "64"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "1051:3:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1051:18:54"
                  },
                  "variableNames": [
                    {
                      "name": "pos",
                      "nodeType": "YulIdentifier",
                      "src": "1044:3:54"
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1078:29:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "value0",
                        "nodeType": "YulIdentifier",
                        "src": "1096:6:54"
                      },
                      {
                        "name": "_1",
                        "nodeType": "YulIdentifier",
                        "src": "1104:2:54"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "1092:3:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1092:15:54"
                  },
                  "variables": [
                    {
                      "name": "srcPtr",
                      "nodeType": "YulTypedName",
                      "src": "1082:6:54",
                      "type": ""
                    }
                  ]
                },
                {
                  "nodeType": "YulVariableDeclaration",
                  "src": "1116:10:54",
                  "value": {
                    "kind": "number",
                    "nodeType": "YulLiteral",
                    "src": "1125:1:54",
                    "type": "",
                    "value": "0"
                  },
                  "variables": [
                    {
                      "name": "i",
                      "nodeType": "YulTypedName",
                      "src": "1120:1:54",
                      "type": ""
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1184:120:54",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "1205:3:54"
                            },
                            {
                              "arguments": [
                                {
                                  "name": "srcPtr",
                                  "nodeType": "YulIdentifier",
                                  "src": "1216:6:54"
                                }
                              ],
                              "functionName": {
                                "name": "mload",
                                "nodeType": "YulIdentifier",
                                "src": "1210:5:54"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "1210:13:54"
                            }
                          ],
                          "functionName": {
                            "name": "mstore",
                            "nodeType": "YulIdentifier",
                            "src": "1198:6:54"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1198:26:54"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1198:26:54"
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "1237:19:54",
                        "value": {
                          "arguments": [
                            {
                              "name": "pos",
                              "nodeType": "YulIdentifier",
                              "src": "1248:3:54"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "1253:2:54"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "1244:3:54"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1244:12:54"
                        },
                        "variableNames": [
                          {
                            "name": "pos",
                            "nodeType": "YulIdentifier",
                            "src": "1237:3:54"
                          }
                        ]
                      },
                      {
                        "nodeType": "YulAssignment",
                        "src": "1269:25:54",
                        "value": {
                          "arguments": [
                            {
                              "name": "srcPtr",
                              "nodeType": "YulIdentifier",
                              "src": "1283:6:54"
                            },
                            {
                              "name": "_1",
                              "nodeType": "YulIdentifier",
                              "src": "1291:2:54"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "1279:3:54"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1279:15:54"
                        },
                        "variableNames": [
                          {
                            "name": "srcPtr",
                            "nodeType": "YulIdentifier",
                            "src": "1269:6:54"
                          }
                        ]
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "i",
                        "nodeType": "YulIdentifier",
                        "src": "1146:1:54"
                      },
                      {
                        "name": "length",
                        "nodeType": "YulIdentifier",
                        "src": "1149:6:54"
                      }
                    ],
                    "functionName": {
                      "name": "lt",
                      "nodeType": "YulIdentifier",
                      "src": "1143:2:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1143:13:54"
                  },
                  "nodeType": "YulForLoop",
                  "post": {
                    "nodeType": "YulBlock",
                    "src": "1157:18:54",
                    "statements": [
                      {
                        "nodeType": "YulAssignment",
                        "src": "1159:14:54",
                        "value": {
                          "arguments": [
                            {
                              "name": "i",
                              "nodeType": "YulIdentifier",
                              "src": "1168:1:54"
                            },
                            {
                              "kind": "number",
                              "nodeType": "YulLiteral",
                              "src": "1171:1:54",
                              "type": "",
                              "value": "1"
                            }
                          ],
                          "functionName": {
                            "name": "add",
                            "nodeType": "YulIdentifier",
                            "src": "1164:3:54"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1164:9:54"
                        },
                        "variableNames": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "1159:1:54"
                          }
                        ]
                      }
                    ]
                  },
                  "pre": {
                    "nodeType": "YulBlock",
                    "src": "1139:3:54",
                    "statements": []
                  },
                  "src": "1135:169:54"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1313:11:54",
                  "value": {
                    "name": "pos",
                    "nodeType": "YulIdentifier",
                    "src": "1321:3:54"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "1313: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": "818:9:54",
                "type": ""
              },
              {
                "name": "value0",
                "nodeType": "YulTypedName",
                "src": "829:6:54",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "840:4:54",
                "type": ""
              }
            ],
            "src": "698:632:54"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1367:95:54",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1384:1:54",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1391:3:54",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1396:10:54",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "1387:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1387:20:54"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1377:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1377:31:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1377:31:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1424:1:54",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1427:4:54",
                        "type": "",
                        "value": "0x32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1417:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1417:15:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1417:15:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1448:1:54",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1451:4:54",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "1441:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1441:15:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1441:15:54"
                }
              ]
            },
            "name": "panic_error_0x32",
            "nodeType": "YulFunctionDefinition",
            "src": "1335:127:54"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1499:95:54",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1516:1:54",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1523:3:54",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1528:10:54",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "1519:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1519:20:54"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1509:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1509:31:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1509:31:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1556:1:54",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1559:4:54",
                        "type": "",
                        "value": "0x11"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1549:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1549:15:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1549:15:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1580:1:54",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1583:4:54",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "1573:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1573:15:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1573:15:54"
                }
              ]
            },
            "name": "panic_error_0x11",
            "nodeType": "YulFunctionDefinition",
            "src": "1467:127:54"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1648:79:54",
              "statements": [
                {
                  "nodeType": "YulAssignment",
                  "src": "1658:17:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "1670:1:54"
                      },
                      {
                        "name": "y",
                        "nodeType": "YulIdentifier",
                        "src": "1673:1:54"
                      }
                    ],
                    "functionName": {
                      "name": "sub",
                      "nodeType": "YulIdentifier",
                      "src": "1666:3:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1666:9:54"
                  },
                  "variableNames": [
                    {
                      "name": "diff",
                      "nodeType": "YulIdentifier",
                      "src": "1658:4:54"
                    }
                  ]
                },
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1699:22:54",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "1701:16:54"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1701:18:54"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1701:18:54"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "diff",
                        "nodeType": "YulIdentifier",
                        "src": "1690:4:54"
                      },
                      {
                        "name": "x",
                        "nodeType": "YulIdentifier",
                        "src": "1696:1:54"
                      }
                    ],
                    "functionName": {
                      "name": "gt",
                      "nodeType": "YulIdentifier",
                      "src": "1687:2:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1687:11:54"
                  },
                  "nodeType": "YulIf",
                  "src": "1684:37:54"
                }
              ]
            },
            "name": "checked_sub_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "x",
                "nodeType": "YulTypedName",
                "src": "1630:1:54",
                "type": ""
              },
              {
                "name": "y",
                "nodeType": "YulTypedName",
                "src": "1633:1:54",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "diff",
                "nodeType": "YulTypedName",
                "src": "1639:4:54",
                "type": ""
              }
            ],
            "src": "1599:128:54"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1764:95:54",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1781:1:54",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1788:3:54",
                            "type": "",
                            "value": "224"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1793:10:54",
                            "type": "",
                            "value": "0x4e487b71"
                          }
                        ],
                        "functionName": {
                          "name": "shl",
                          "nodeType": "YulIdentifier",
                          "src": "1784:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1784:20:54"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1774:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1774:31:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1774:31:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1821:1:54",
                        "type": "",
                        "value": "4"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1824:4:54",
                        "type": "",
                        "value": "0x31"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "1814:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1814:15:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1814:15:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1845:1:54",
                        "type": "",
                        "value": "0"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1848:4:54",
                        "type": "",
                        "value": "0x24"
                      }
                    ],
                    "functionName": {
                      "name": "revert",
                      "nodeType": "YulIdentifier",
                      "src": "1838:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1838:15:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "1838:15:54"
                }
              ]
            },
            "name": "panic_error_0x31",
            "nodeType": "YulFunctionDefinition",
            "src": "1732:127:54"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "1911:88:54",
              "statements": [
                {
                  "body": {
                    "nodeType": "YulBlock",
                    "src": "1942:22:54",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [],
                          "functionName": {
                            "name": "panic_error_0x11",
                            "nodeType": "YulIdentifier",
                            "src": "1944:16:54"
                          },
                          "nodeType": "YulFunctionCall",
                          "src": "1944:18:54"
                        },
                        "nodeType": "YulExpressionStatement",
                        "src": "1944:18:54"
                      }
                    ]
                  },
                  "condition": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "1927:5:54"
                      },
                      {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1938:1:54",
                            "type": "",
                            "value": "0"
                          }
                        ],
                        "functionName": {
                          "name": "not",
                          "nodeType": "YulIdentifier",
                          "src": "1934:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1934:6:54"
                      }
                    ],
                    "functionName": {
                      "name": "eq",
                      "nodeType": "YulIdentifier",
                      "src": "1924:2:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1924:17:54"
                  },
                  "nodeType": "YulIf",
                  "src": "1921:43:54"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "1973:20:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "value",
                        "nodeType": "YulIdentifier",
                        "src": "1984:5:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1991:1:54",
                        "type": "",
                        "value": "1"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "1980:3:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "1980:13:54"
                  },
                  "variableNames": [
                    {
                      "name": "ret",
                      "nodeType": "YulIdentifier",
                      "src": "1973:3:54"
                    }
                  ]
                }
              ]
            },
            "name": "increment_t_uint256",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "value",
                "nodeType": "YulTypedName",
                "src": "1893:5:54",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "ret",
                "nodeType": "YulTypedName",
                "src": "1903:3:54",
                "type": ""
              }
            ],
            "src": "1864:135:54"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2178:175:54",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2195:9:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2206:2:54",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "2188:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2188:21:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2188:21:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2229:9:54"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "2240:2:54",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "2225:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2225:18:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2245:2:54",
                        "type": "",
                        "value": "25"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "2218:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2218:30:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2218:30:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2268:9:54"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "2279:2:54",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "2264:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2264:18:54"
                      },
                      {
                        "hexValue": "636c61696d546f70696320616c726561647920657869737473",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "2284:27:54",
                        "type": "",
                        "value": "claimTopic already exists"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "2257:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2257:55:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2257:55:54"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2321:26:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2333:9:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2344:2:54",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "2329:3:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2329:18:54"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "2321:4:54"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_970f7c3b9fa3869fb7d4b0e156059d6adbba348c21521bbe3230639fa95756e7__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "2155:9:54",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "2169:4:54",
                "type": ""
              }
            ],
            "src": "2004:349:54"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2532:228:54",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2549:9:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2560:2:54",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "2542:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2542:21:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2542:21:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2583:9:54"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "2594:2:54",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "2579:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2579:18:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2599:2:54",
                        "type": "",
                        "value": "38"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "2572:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2572:30:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2572:30:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2622:9:54"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "2633:2:54",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "2618:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2618:18:54"
                      },
                      {
                        "hexValue": "4f776e61626c653a206e6577206f776e657220697320746865207a65726f2061",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "2638:34:54",
                        "type": "",
                        "value": "Ownable: new owner is the zero a"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "2611:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2611:62:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2611:62:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2693:9:54"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "2704:2:54",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "2689:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2689:18:54"
                      },
                      {
                        "hexValue": "646472657373",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "2709:8:54",
                        "type": "",
                        "value": "ddress"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "2682:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2682:36:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2682:36:54"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "2727:27:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2739:9:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2750:3:54",
                        "type": "",
                        "value": "128"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "2735:3:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2735:19:54"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "2727:4:54"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_245f15ff17f551913a7a18385165551503906a406f905ac1c2437281a7cd0cfe__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "2509:9:54",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "2523:4:54",
                "type": ""
              }
            ],
            "src": "2358:402:54"
          },
          {
            "body": {
              "nodeType": "YulBlock",
              "src": "2939:182:54",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "2956:9:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "2967:2:54",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "2949:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2949:21:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2949:21:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2990:9:54"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3001:2:54",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "2986:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2986:18:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3006:2:54",
                        "type": "",
                        "value": "32"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "2979:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "2979:30:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "2979:30:54"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3029:9:54"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3040:2:54",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3025:3:54"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3025:18:54"
                      },
                      {
                        "hexValue": "4f776e61626c653a2063616c6c6572206973206e6f7420746865206f776e6572",
                        "kind": "string",
                        "nodeType": "YulLiteral",
                        "src": "3045:34:54",
                        "type": "",
                        "value": "Ownable: caller is not the owner"
                      }
                    ],
                    "functionName": {
                      "name": "mstore",
                      "nodeType": "YulIdentifier",
                      "src": "3018:6:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3018:62:54"
                  },
                  "nodeType": "YulExpressionStatement",
                  "src": "3018:62:54"
                },
                {
                  "nodeType": "YulAssignment",
                  "src": "3089:26:54",
                  "value": {
                    "arguments": [
                      {
                        "name": "headStart",
                        "nodeType": "YulIdentifier",
                        "src": "3101:9:54"
                      },
                      {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "3112:2:54",
                        "type": "",
                        "value": "96"
                      }
                    ],
                    "functionName": {
                      "name": "add",
                      "nodeType": "YulIdentifier",
                      "src": "3097:3:54"
                    },
                    "nodeType": "YulFunctionCall",
                    "src": "3097:18:54"
                  },
                  "variableNames": [
                    {
                      "name": "tail",
                      "nodeType": "YulIdentifier",
                      "src": "3089:4:54"
                    }
                  ]
                }
              ]
            },
            "name": "abi_encode_tuple_t_stringliteral_9924ebdf1add33d25d4ef888e16131f0a5687b0580a36c21b5c301a6c462effe__to_t_string_memory_ptr__fromStack_reversed",
            "nodeType": "YulFunctionDefinition",
            "parameters": [
              {
                "name": "headStart",
                "nodeType": "YulTypedName",
                "src": "2916:9:54",
                "type": ""
              }
            ],
            "returnVariables": [
              {
                "name": "tail",
                "nodeType": "YulTypedName",
                "src": "2930:4:54",
                "type": ""
              }
            ],
            "src": "2765:356:54"
          }
        ]
      },
      "contents": "{\n    { }\n    function abi_decode_tuple_t_uint256(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := calldataload(headStart)\n    }\n    function abi_encode_tuple_t_address__to_t_address__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, and(value0, sub(shl(160, 1), 1)))\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        let value := calldataload(headStart)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\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 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 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 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_970f7c3b9fa3869fb7d4b0e156059d6adbba348c21521bbe3230639fa95756e7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 25)\n        mstore(add(headStart, 64), \"claimTopic already exists\")\n        tail := add(headStart, 96)\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": "1220:1503:34:-:0;;;;;;;;;;;;-1:-1:-1;936:32:13;719:10:20;936:18:13;:32::i;:::-;1220:1503:34;;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;1220:1503:34:-;;;;;;;",
  "deployedSourceMap": "1220:1503:34:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;1858:416;;;;;;:::i;:::-;;:::i;:::-;;1831:101:13;;;:::i;1201:85::-;;;:::i;:::-;;;-1:-1:-1;;;;;363:32:54;;;345:51;;333:2;318:18;1201:85:13;;;;;;;;1434:344:34;;;;;;:::i;:::-;;:::i;2573:148::-;;;;;;:::i;:::-;;:::i;2352:111::-;;;:::i;:::-;;;;;;;:::i;2081:198:13:-;;;;;;:::i;:::-;;:::i;1858:416:34:-;1094:13:13;:11;:13::i;:::-;1960:11:34::1;:18:::0;1943:14:::1;1988:280;2012:6;2008:1;:10;1988:280;;;2061:11;2043;2055:1;2043:14;;;;;;;;:::i;:::-;;;;;;;;;:29:::0;2039:219:::1;;2109:11;2121:10;2109:11:::0;2121:6;:10:::1;:::i;:::-;2109:23;;;;;;;;:::i;:::-;;;;;;;;;2092:11;2104:1;2092:14;;;;;;;;:::i;:::-;;::::0;;;::::1;::::0;;;::::1;:40:::0;2150:11:::1;:17:::0;;;::::1;;;;:::i;:::-;;;;;;;;;;;;;;;;;;2208:11;2190:30;;;;;;;;;;1988:280;1933:341;1858:416:::0;:::o;2039:219::-:1;2020:3:::0;::::1;::::0;::::1;:::i;:::-;;;;1988:280;;;;1933:341;1858:416:::0;:::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;1434:344:34:-;1094:13:13;:11;:13::i;:::-;1533:11:34::1;:18:::0;1516:14:::1;1561:129;1585:6;1581:1;:10;1561:129;;;1638:11;1620;1632:1;1620:14;;;;;;;;:::i;:::-;;;;;;;;;:29:::0;1612:67:::1;;;::::0;-1:-1:-1;;;1612:67:34;;2206:2:54;1612:67:34::1;::::0;::::1;2188:21:54::0;2245:2;2225:18;;;2218:30;-1:-1:-1;;;2264:18:54;;;2257:55;2329:18;;1612:67:34::1;;;;;;;;;1593:3:::0;::::1;::::0;::::1;:::i;:::-;;;;1561:129;;;-1:-1:-1::0;1699:11:34::1;:29:::0;;;;::::1;::::0;;-1:-1:-1;1699:29:34;;;;::::1;::::0;;;1743:28:::1;::::0;1716:11;;1743:28:::1;::::0;::::1;1506:272;1434:344:::0;:::o;2573:148::-;1094:13:13;:11;:13::i;:::-;2686:28:34::1;2704:9;2686:17;:28::i;:::-;2573:148:::0;:::o;2352:111::-;2410:16;2445:11;2438:18;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2352:111;:::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;;2560:2:54;2161:73:13::1;::::0;::::1;2542:21:54::0;2599:2;2579:18;;;2572:30;2638:34;2618:18;;;2611:62;-1:-1:-1;;;2689:18:54;;;2682:36;2735:19;;2161:73:13::1;2358: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;;2967:2:54;1414:68:13;;;2949:21:54;;;2986:18;;;2979:30;3045:34;3025:18;;;3018:62;3097:18;;1414:68:13;2765: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;14:180:54:-;73:6;126:2;114:9;105:7;101:23;97:32;94:52;;;142:1;139;132:12;94:52;-1:-1:-1;165:23:54;;14:180;-1:-1:-1;14:180:54:o;407:286::-;466:6;519:2;507:9;498:7;494:23;490:32;487:52;;;535:1;532;525:12;487:52;561:23;;-1:-1:-1;;;;;613:31:54;;603:42;;593:70;;659:1;656;649:12;593:70;682:5;407:286;-1:-1:-1;;;407:286:54:o;698:632::-;869:2;921:21;;;991:13;;894:18;;;1013:22;;;840:4;;869:2;1092:15;;;;1066:2;1051:18;;;840:4;1135:169;1149:6;1146:1;1143:13;1135:169;;;1210:13;;1198:26;;1279:15;;;;1244:12;;;;1171:1;1164:9;1135:169;;;-1:-1:-1;1321:3:54;;698:632;-1:-1:-1;;;;;;698:632:54:o;1335:127::-;1396:10;1391:3;1387:20;1384:1;1377:31;1427:4;1424:1;1417:15;1451:4;1448:1;1441:15;1467:127;1528:10;1523:3;1519:20;1516:1;1509:31;1559:4;1556:1;1549:15;1583:4;1580:1;1573:15;1599:128;1666:9;;;1687:11;;;1684:37;;;1701:18;;:::i;:::-;1599:128;;;;:::o;1732:127::-;1793:10;1788:3;1784:20;1781:1;1774:31;1824:4;1821:1;1814:15;1848:4;1845:1;1838:15;1864:135;1903:3;1924:17;;;1921:43;;1944:18;;:::i;:::-;-1:-1:-1;1991:1:54;1980:13;;1864:135::o",
  "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 '@openzeppelin/contracts/access/Ownable.sol';\n\nimport '../registry/IClaimTopicsRegistry.sol';\n\ncontract ClaimTopicsRegistry is IClaimTopicsRegistry, Ownable {\n    /// @dev All required Claim Topics\n    uint256[] private claimTopics;\n\n    /**\n     *  @dev See {IClaimTopicsRegistry-addClaimTopic}.\n     */\n    function addClaimTopic(uint256 _claimTopic) external override onlyOwner {\n        uint256 length = claimTopics.length;\n        for (uint256 i = 0; i < length; i++) {\n            require(claimTopics[i] != _claimTopic, 'claimTopic already exists');\n        }\n        claimTopics.push(_claimTopic);\n        emit ClaimTopicAdded(_claimTopic);\n    }\n\n    /**\n     *  @dev See {IClaimTopicsRegistry-removeClaimTopic}.\n     */\n    function removeClaimTopic(uint256 _claimTopic) external override onlyOwner {\n        uint256 length = claimTopics.length;\n        for (uint256 i = 0; i < length; i++) {\n            if (claimTopics[i] == _claimTopic) {\n                claimTopics[i] = claimTopics[length - 1];\n                claimTopics.pop();\n                emit ClaimTopicRemoved(_claimTopic);\n                break;\n            }\n        }\n    }\n\n    /**\n     *  @dev See {IClaimTopicsRegistry-getClaimTopics}.\n     */\n    function getClaimTopics() external view override returns (uint256[] memory) {\n        return claimTopics;\n    }\n\n    /**\n     *  @dev See {IClaimTopicsRegistry-transferOwnershipOnClaimTopicsRegistryContract}.\n     */\n    function transferOwnershipOnClaimTopicsRegistryContract(address _newOwner) external override onlyOwner {\n        transferOwnership(_newOwner);\n    }\n}\n",
  "sourcePath": "/home/webxpert/workspace/shipfinex/latest-repos/tokenx_smartcontract/contracts/registry/ClaimTopicsRegistry.sol",
  "ast": {
    "absolutePath": "project:/contracts/registry/ClaimTopicsRegistry.sol",
    "exportedSymbols": {
      "ClaimTopicsRegistry": [
        6406
      ],
      "Context": [
        3401
      ],
      "IClaimTopicsRegistry": [
        6444
      ],
      "Ownable": [
        2505
      ]
    },
    "id": 6407,
    "license": "GPL-3.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 6270,
        "literals": [
          "solidity",
          "^",
          "0.8",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "1093:23:34"
      },
      {
        "absolutePath": "@openzeppelin/contracts/access/Ownable.sol",
        "file": "@openzeppelin/contracts/access/Ownable.sol",
        "id": 6271,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 6407,
        "sourceUnit": 2506,
        "src": "1118:52:34",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "project:/contracts/registry/IClaimTopicsRegistry.sol",
        "file": "../registry/IClaimTopicsRegistry.sol",
        "id": 6272,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 6407,
        "sourceUnit": 6445,
        "src": "1172:46:34",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": false,
        "baseContracts": [
          {
            "baseName": {
              "id": 6273,
              "name": "IClaimTopicsRegistry",
              "nameLocations": [
                "1252:20:34"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 6444,
              "src": "1252:20:34"
            },
            "id": 6274,
            "nodeType": "InheritanceSpecifier",
            "src": "1252:20:34"
          },
          {
            "baseName": {
              "id": 6275,
              "name": "Ownable",
              "nameLocations": [
                "1274:7:34"
              ],
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 2505,
              "src": "1274:7:34"
            },
            "id": 6276,
            "nodeType": "InheritanceSpecifier",
            "src": "1274:7:34"
          }
        ],
        "canonicalName": "ClaimTopicsRegistry",
        "contractDependencies": [],
        "contractKind": "contract",
        "fullyImplemented": true,
        "id": 6406,
        "linearizedBaseContracts": [
          6406,
          2505,
          3401,
          6444
        ],
        "name": "ClaimTopicsRegistry",
        "nameLocation": "1229:19:34",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "documentation": {
              "id": 6277,
              "nodeType": "StructuredDocumentation",
              "src": "1288:34:34",
              "text": "@dev All required Claim Topics"
            },
            "id": 6280,
            "mutability": "mutable",
            "name": "claimTopics",
            "nameLocation": "1345:11:34",
            "nodeType": "VariableDeclaration",
            "scope": 6406,
            "src": "1327:29:34",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
              "typeString": "uint256[]"
            },
            "typeName": {
              "baseType": {
                "id": 6278,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "1327:7:34",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "id": 6279,
              "nodeType": "ArrayTypeName",
              "src": "1327:9:34",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                "typeString": "uint256[]"
              }
            },
            "visibility": "private"
          },
          {
            "baseFunctions": [
              6424
            ],
            "body": {
              "id": 6325,
              "nodeType": "Block",
              "src": "1506:272:34",
              "statements": [
                {
                  "assignments": [
                    6290
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6290,
                      "mutability": "mutable",
                      "name": "length",
                      "nameLocation": "1524:6:34",
                      "nodeType": "VariableDeclaration",
                      "scope": 6325,
                      "src": "1516:14:34",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6289,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "1516:7:34",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 6293,
                  "initialValue": {
                    "expression": {
                      "id": 6291,
                      "name": "claimTopics",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6280,
                      "src": "1533:11:34",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                        "typeString": "uint256[] storage ref"
                      }
                    },
                    "id": 6292,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "1545:6:34",
                    "memberName": "length",
                    "nodeType": "MemberAccess",
                    "src": "1533:18:34",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1516:35:34"
                },
                {
                  "body": {
                    "id": 6313,
                    "nodeType": "Block",
                    "src": "1598:92:34",
                    "statements": [
                      {
                        "expression": {
                          "arguments": [
                            {
                              "commonType": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              },
                              "id": 6309,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "baseExpression": {
                                  "id": 6305,
                                  "name": "claimTopics",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6280,
                                  "src": "1620:11:34",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                                    "typeString": "uint256[] storage ref"
                                  }
                                },
                                "id": 6307,
                                "indexExpression": {
                                  "id": 6306,
                                  "name": "i",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6295,
                                  "src": "1632:1:34",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "isConstant": false,
                                "isLValue": true,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "IndexAccess",
                                "src": "1620:14:34",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "!=",
                              "rightExpression": {
                                "id": 6308,
                                "name": "_claimTopic",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6283,
                                "src": "1638:11:34",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "src": "1620:29:34",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            {
                              "hexValue": "636c61696d546f70696320616c726561647920657869737473",
                              "id": 6310,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1651:27:34",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_970f7c3b9fa3869fb7d4b0e156059d6adbba348c21521bbe3230639fa95756e7",
                                "typeString": "literal_string \"claimTopic already exists\""
                              },
                              "value": "claimTopic already exists"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              },
                              {
                                "typeIdentifier": "t_stringliteral_970f7c3b9fa3869fb7d4b0e156059d6adbba348c21521bbe3230639fa95756e7",
                                "typeString": "literal_string \"claimTopic already exists\""
                              }
                            ],
                            "id": 6304,
                            "name": "require",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [
                              4294967278,
                              4294967278
                            ],
                            "referencedDeclaration": 4294967278,
                            "src": "1612:7:34",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                              "typeString": "function (bool,string memory) pure"
                            }
                          },
                          "id": 6311,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "nameLocations": [],
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1612:67:34",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6312,
                        "nodeType": "ExpressionStatement",
                        "src": "1612:67:34"
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6300,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 6298,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6295,
                      "src": "1581:1:34",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "id": 6299,
                      "name": "length",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6290,
                      "src": "1585:6:34",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1581:10:34",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6314,
                  "initializationExpression": {
                    "assignments": [
                      6295
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 6295,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "1574:1:34",
                        "nodeType": "VariableDeclaration",
                        "scope": 6314,
                        "src": "1566:9:34",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 6294,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1566:7:34",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 6297,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 6296,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1578:1:34",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "1566:13:34"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 6302,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "1593:3:34",
                      "subExpression": {
                        "id": 6301,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6295,
                        "src": "1593:1:34",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6303,
                    "nodeType": "ExpressionStatement",
                    "src": "1593:3:34"
                  },
                  "nodeType": "ForStatement",
                  "src": "1561:129:34"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6318,
                        "name": "_claimTopic",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6283,
                        "src": "1716:11:34",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 6315,
                        "name": "claimTopics",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6280,
                        "src": "1699:11:34",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                          "typeString": "uint256[] storage ref"
                        }
                      },
                      "id": 6317,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberLocation": "1711:4:34",
                      "memberName": "push",
                      "nodeType": "MemberAccess",
                      "src": "1699:16:34",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$bound_to$_t_array$_t_uint256_$dyn_storage_ptr_$",
                        "typeString": "function (uint256[] storage pointer,uint256)"
                      }
                    },
                    "id": 6319,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1699:29:34",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6320,
                  "nodeType": "ExpressionStatement",
                  "src": "1699:29:34"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 6322,
                        "name": "_claimTopic",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6283,
                        "src": "1759:11:34",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 6321,
                      "name": "ClaimTopicAdded",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6413,
                      "src": "1743:15:34",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256)"
                      }
                    },
                    "id": 6323,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1743:28:34",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6324,
                  "nodeType": "EmitStatement",
                  "src": "1738:33:34"
                }
              ]
            },
            "documentation": {
              "id": 6281,
              "nodeType": "StructuredDocumentation",
              "src": "1363:66:34",
              "text": "  @dev See {IClaimTopicsRegistry-addClaimTopic}."
            },
            "functionSelector": "c7b22551",
            "id": 6326,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 6287,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 6286,
                  "name": "onlyOwner",
                  "nameLocations": [
                    "1496:9:34"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 2424,
                  "src": "1496:9:34"
                },
                "nodeType": "ModifierInvocation",
                "src": "1496:9:34"
              }
            ],
            "name": "addClaimTopic",
            "nameLocation": "1443:13:34",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6285,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1487:8:34"
            },
            "parameters": {
              "id": 6284,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6283,
                  "mutability": "mutable",
                  "name": "_claimTopic",
                  "nameLocation": "1465:11:34",
                  "nodeType": "VariableDeclaration",
                  "scope": 6326,
                  "src": "1457:19:34",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6282,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1457:7:34",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1456:21:34"
            },
            "returnParameters": {
              "id": 6288,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1506:0:34"
            },
            "scope": 6406,
            "src": "1434:344:34",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              6430
            ],
            "body": {
              "id": 6379,
              "nodeType": "Block",
              "src": "1933:341:34",
              "statements": [
                {
                  "assignments": [
                    6336
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6336,
                      "mutability": "mutable",
                      "name": "length",
                      "nameLocation": "1951:6:34",
                      "nodeType": "VariableDeclaration",
                      "scope": 6379,
                      "src": "1943:14:34",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6335,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "1943:7:34",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 6339,
                  "initialValue": {
                    "expression": {
                      "id": 6337,
                      "name": "claimTopics",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6280,
                      "src": "1960:11:34",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                        "typeString": "uint256[] storage ref"
                      }
                    },
                    "id": 6338,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberLocation": "1972:6:34",
                    "memberName": "length",
                    "nodeType": "MemberAccess",
                    "src": "1960:18:34",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1943:35:34"
                },
                {
                  "body": {
                    "id": 6377,
                    "nodeType": "Block",
                    "src": "2025:243:34",
                    "statements": [
                      {
                        "condition": {
                          "commonType": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          "id": 6354,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "baseExpression": {
                              "id": 6350,
                              "name": "claimTopics",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6280,
                              "src": "2043:11:34",
                              "typeDescriptions": {
                                "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                                "typeString": "uint256[] storage ref"
                              }
                            },
                            "id": 6352,
                            "indexExpression": {
                              "id": 6351,
                              "name": "i",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6341,
                              "src": "2055:1:34",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            },
                            "isConstant": false,
                            "isLValue": true,
                            "isPure": false,
                            "lValueRequested": false,
                            "nodeType": "IndexAccess",
                            "src": "2043:14:34",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "id": 6353,
                            "name": "_claimTopic",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6329,
                            "src": "2061:11:34",
                            "typeDescriptions": {
                              "typeIdentifier": "t_uint256",
                              "typeString": "uint256"
                            }
                          },
                          "src": "2043:29:34",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 6376,
                        "nodeType": "IfStatement",
                        "src": "2039:219:34",
                        "trueBody": {
                          "id": 6375,
                          "nodeType": "Block",
                          "src": "2074:184:34",
                          "statements": [
                            {
                              "expression": {
                                "id": 6363,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "baseExpression": {
                                    "id": 6355,
                                    "name": "claimTopics",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6280,
                                    "src": "2092:11:34",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                                      "typeString": "uint256[] storage ref"
                                    }
                                  },
                                  "id": 6357,
                                  "indexExpression": {
                                    "id": 6356,
                                    "name": "i",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6341,
                                    "src": "2104:1:34",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": true,
                                  "nodeType": "IndexAccess",
                                  "src": "2092:14:34",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "baseExpression": {
                                    "id": 6358,
                                    "name": "claimTopics",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6280,
                                    "src": "2109:11:34",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                                      "typeString": "uint256[] storage ref"
                                    }
                                  },
                                  "id": 6362,
                                  "indexExpression": {
                                    "commonType": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    },
                                    "id": 6361,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "id": 6359,
                                      "name": "length",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6336,
                                      "src": "2121:6:34",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "-",
                                    "rightExpression": {
                                      "hexValue": "31",
                                      "id": 6360,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": true,
                                      "kind": "number",
                                      "lValueRequested": false,
                                      "nodeType": "Literal",
                                      "src": "2130:1:34",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_rational_1_by_1",
                                        "typeString": "int_const 1"
                                      },
                                      "value": "1"
                                    },
                                    "src": "2121:10:34",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  },
                                  "isConstant": false,
                                  "isLValue": true,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "nodeType": "IndexAccess",
                                  "src": "2109:23:34",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "src": "2092:40:34",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6364,
                              "nodeType": "ExpressionStatement",
                              "src": "2092:40:34"
                            },
                            {
                              "expression": {
                                "arguments": [],
                                "expression": {
                                  "argumentTypes": [],
                                  "expression": {
                                    "id": 6365,
                                    "name": "claimTopics",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6280,
                                    "src": "2150:11:34",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                                      "typeString": "uint256[] storage ref"
                                    }
                                  },
                                  "id": 6367,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberLocation": "2162:3:34",
                                  "memberName": "pop",
                                  "nodeType": "MemberAccess",
                                  "src": "2150:15:34",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_arraypop_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$returns$__$bound_to$_t_array$_t_uint256_$dyn_storage_ptr_$",
                                    "typeString": "function (uint256[] storage pointer)"
                                  }
                                },
                                "id": 6368,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "2150:17:34",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 6369,
                              "nodeType": "ExpressionStatement",
                              "src": "2150:17:34"
                            },
                            {
                              "eventCall": {
                                "arguments": [
                                  {
                                    "id": 6371,
                                    "name": "_claimTopic",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6329,
                                    "src": "2208:11:34",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_uint256",
                                      "typeString": "uint256"
                                    }
                                  ],
                                  "id": 6370,
                                  "name": "ClaimTopicRemoved",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6418,
                                  "src": "2190:17:34",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$returns$__$",
                                    "typeString": "function (uint256)"
                                  }
                                },
                                "id": 6372,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "nameLocations": [],
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "2190:30:34",
                                "tryCall": false,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 6373,
                              "nodeType": "EmitStatement",
                              "src": "2185:35:34"
                            },
                            {
                              "id": 6374,
                              "nodeType": "Break",
                              "src": "2238:5:34"
                            }
                          ]
                        }
                      }
                    ]
                  },
                  "condition": {
                    "commonType": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    },
                    "id": 6346,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "id": 6344,
                      "name": "i",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6341,
                      "src": "2008:1:34",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "<",
                    "rightExpression": {
                      "id": 6345,
                      "name": "length",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6336,
                      "src": "2012:6:34",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2008:10:34",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6378,
                  "initializationExpression": {
                    "assignments": [
                      6341
                    ],
                    "declarations": [
                      {
                        "constant": false,
                        "id": 6341,
                        "mutability": "mutable",
                        "name": "i",
                        "nameLocation": "2001:1:34",
                        "nodeType": "VariableDeclaration",
                        "scope": 6378,
                        "src": "1993:9:34",
                        "stateVariable": false,
                        "storageLocation": "default",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "typeName": {
                          "id": 6340,
                          "name": "uint256",
                          "nodeType": "ElementaryTypeName",
                          "src": "1993:7:34",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "visibility": "internal"
                      }
                    ],
                    "id": 6343,
                    "initialValue": {
                      "hexValue": "30",
                      "id": 6342,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "number",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2005:1:34",
                      "typeDescriptions": {
                        "typeIdentifier": "t_rational_0_by_1",
                        "typeString": "int_const 0"
                      },
                      "value": "0"
                    },
                    "nodeType": "VariableDeclarationStatement",
                    "src": "1993:13:34"
                  },
                  "loopExpression": {
                    "expression": {
                      "id": 6348,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "nodeType": "UnaryOperation",
                      "operator": "++",
                      "prefix": false,
                      "src": "2020:3:34",
                      "subExpression": {
                        "id": 6347,
                        "name": "i",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6341,
                        "src": "2020:1:34",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6349,
                    "nodeType": "ExpressionStatement",
                    "src": "2020:3:34"
                  },
                  "nodeType": "ForStatement",
                  "src": "1988:280:34"
                }
              ]
            },
            "documentation": {
              "id": 6327,
              "nodeType": "StructuredDocumentation",
              "src": "1784:69:34",
              "text": "  @dev See {IClaimTopicsRegistry-removeClaimTopic}."
            },
            "functionSelector": "08297846",
            "id": 6380,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 6333,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 6332,
                  "name": "onlyOwner",
                  "nameLocations": [
                    "1923:9:34"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 2424,
                  "src": "1923:9:34"
                },
                "nodeType": "ModifierInvocation",
                "src": "1923:9:34"
              }
            ],
            "name": "removeClaimTopic",
            "nameLocation": "1867:16:34",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6331,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "1914:8:34"
            },
            "parameters": {
              "id": 6330,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6329,
                  "mutability": "mutable",
                  "name": "_claimTopic",
                  "nameLocation": "1892:11:34",
                  "nodeType": "VariableDeclaration",
                  "scope": 6380,
                  "src": "1884:19:34",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6328,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1884:7:34",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1883:21:34"
            },
            "returnParameters": {
              "id": 6334,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1933:0:34"
            },
            "scope": 6406,
            "src": "1858:416:34",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              6437
            ],
            "body": {
              "id": 6390,
              "nodeType": "Block",
              "src": "2428:35:34",
              "statements": [
                {
                  "expression": {
                    "id": 6388,
                    "name": "claimTopics",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6280,
                    "src": "2445:11:34",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                      "typeString": "uint256[] storage ref"
                    }
                  },
                  "functionReturnParameters": 6387,
                  "id": 6389,
                  "nodeType": "Return",
                  "src": "2438:18:34"
                }
              ]
            },
            "documentation": {
              "id": 6381,
              "nodeType": "StructuredDocumentation",
              "src": "2280:67:34",
              "text": "  @dev See {IClaimTopicsRegistry-getClaimTopics}."
            },
            "functionSelector": "df09d604",
            "id": 6391,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getClaimTopics",
            "nameLocation": "2361:14:34",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6383,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2392:8:34"
            },
            "parameters": {
              "id": 6382,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2375:2:34"
            },
            "returnParameters": {
              "id": 6387,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6386,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6391,
                  "src": "2410:16:34",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 6384,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "2410:7:34",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 6385,
                    "nodeType": "ArrayTypeName",
                    "src": "2410:9:34",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2409:18:34"
            },
            "scope": 6406,
            "src": "2352:111:34",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              6443
            ],
            "body": {
              "id": 6404,
              "nodeType": "Block",
              "src": "2676:45:34",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6401,
                        "name": "_newOwner",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6394,
                        "src": "2704:9:34",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 6400,
                      "name": "transferOwnership",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 2484,
                      "src": "2686:17:34",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_address_$returns$__$",
                        "typeString": "function (address)"
                      }
                    },
                    "id": 6402,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "nameLocations": [],
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2686:28:34",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6403,
                  "nodeType": "ExpressionStatement",
                  "src": "2686:28:34"
                }
              ]
            },
            "documentation": {
              "id": 6392,
              "nodeType": "StructuredDocumentation",
              "src": "2469:99:34",
              "text": "  @dev See {IClaimTopicsRegistry-transferOwnershipOnClaimTopicsRegistryContract}."
            },
            "functionSelector": "d5144472",
            "id": 6405,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 6398,
                "kind": "modifierInvocation",
                "modifierName": {
                  "id": 6397,
                  "name": "onlyOwner",
                  "nameLocations": [
                    "2666:9:34"
                  ],
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 2424,
                  "src": "2666:9:34"
                },
                "nodeType": "ModifierInvocation",
                "src": "2666:9:34"
              }
            ],
            "name": "transferOwnershipOnClaimTopicsRegistryContract",
            "nameLocation": "2582:46:34",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6396,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2657:8:34"
            },
            "parameters": {
              "id": 6395,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6394,
                  "mutability": "mutable",
                  "name": "_newOwner",
                  "nameLocation": "2637:9:34",
                  "nodeType": "VariableDeclaration",
                  "scope": 6405,
                  "src": "2629:17:34",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6393,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2629:7:34",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2628:19:34"
            },
            "returnParameters": {
              "id": 6399,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2676:0:34"
            },
            "scope": 6406,
            "src": "2573:148:34",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 6407,
        "src": "1220:1503:34",
        "usedErrors": []
      }
    ],
    "src": "1093:1631:34"
  },
  "compiler": {
    "name": "solc",
    "version": "0.8.17+commit.8df45f5f.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.4.8",
  "updatedAt": "2022-12-08T12:51:01.367Z",
  "devdoc": {
    "kind": "dev",
    "methods": {
      "addClaimTopic(uint256)": {
        "details": "See {IClaimTopicsRegistry-addClaimTopic}."
      },
      "getClaimTopics()": {
        "details": "See {IClaimTopicsRegistry-getClaimTopics}."
      },
      "owner()": {
        "details": "Returns the address of the current owner."
      },
      "removeClaimTopic(uint256)": {
        "details": "See {IClaimTopicsRegistry-removeClaimTopic}."
      },
      "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."
      },
      "transferOwnershipOnClaimTopicsRegistryContract(address)": {
        "details": "See {IClaimTopicsRegistry-transferOwnershipOnClaimTopicsRegistryContract}."
      }
    },
    "stateVariables": {
      "claimTopics": {
        "details": "All required Claim Topics"
      }
    },
    "version": 1
  },
  "userdoc": {
    "events": {
      "ClaimTopicAdded(uint256)": {
        "notice": "this event is emitted when a claim topic has been added to the ClaimTopicsRegistry  the event is emitted by the 'addClaimTopic' function  `claimTopic` is the required claim added to the Claim Topics Registry"
      },
      "ClaimTopicRemoved(uint256)": {
        "notice": "this event is emitted when a claim topic has been removed from the ClaimTopicsRegistry  the event is emitted by the 'removeClaimTopic' function  `claimTopic` is the required claim removed from the Claim Topics Registry"
      }
    },
    "kind": "user",
    "methods": {},
    "version": 1
  }
}