{
  "contractName": "OwnerManager",
  "sourceName": "@gnosis.pm/safe-contracts/contracts/base/OwnerManager.sol",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "AddedOwner",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "threshold",
          "type": "uint256"
        }
      ],
      "name": "ChangedThreshold",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "RemovedOwner",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_threshold",
          "type": "uint256"
        }
      ],
      "name": "addOwnerWithThreshold",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_threshold",
          "type": "uint256"
        }
      ],
      "name": "changeThreshold",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getOwners",
      "outputs": [
        {
          "internalType": "address[]",
          "name": "",
          "type": "address[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getThreshold",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        }
      ],
      "name": "isOwner",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "prevOwner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_threshold",
          "type": "uint256"
        }
      ],
      "name": "removeOwner",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "prevOwner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "oldOwner",
          "type": "address"
        },
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "swapOwner",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b50610a6d806100206000396000f3fe608060405234801561001057600080fd5b506004361061007d5760003560e01c8063a0e67e2b1161005b578063a0e67e2b146100d2578063e318b52b146100e7578063e75235b8146100fa578063f8dc5dd91461010b57600080fd5b80630d582f13146100825780632f54bf6e14610097578063694e80c3146100bf575b600080fd5b61009561009036600461085c565b61011e565b005b6100aa6100a5366004610886565b610297565b60405190151581526020015b60405180910390f35b6100956100cd3660046108a8565b6102d2565b6100da610388565b6040516100b691906108c1565b6100956100f536600461090e565b610478565b6002546040519081526020016100b6565b610095610119366004610951565b61067d565b610126610807565b6001600160a01b0382161580159061014857506001600160a01b038216600114155b801561015d57506001600160a01b0382163014155b6101825760405162461bcd60e51b81526004016101799061098d565b60405180910390fd5b6001600160a01b0382811660009081526020819052604090205416156101d25760405162461bcd60e51b815260206004820152600560248201526411d4cc8c0d60da1b6044820152606401610179565b600060208190527fada5013122d395ba3c54772283fb069b10426056ef8ca54750cb9bb552a59e7d80546001600160a01b03858116808552604085208054929093166001600160a01b03199283161790925560018085528354909116909117909155805491610240836109c2565b90915550506040516001600160a01b03831681527f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea269060200160405180910390a1806002541461029357610293816102d2565b5050565b60006001600160a01b0382166001148015906102cc57506001600160a01b038281166000908152602081905260409020541615155b92915050565b6102da610807565b6001548111156103145760405162461bcd60e51b8152602060048201526005602482015264475332303160d81b6044820152606401610179565b600181101561034d5760405162461bcd60e51b815260206004820152600560248201526423a999181960d91b6044820152606401610179565b60028190556040518181527f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c939060200160405180910390a150565b6060600060015467ffffffffffffffff8111156103a7576103a76109dd565b6040519080825280602002602001820160405280156103d0578160200160208202803683370190505b506001600090815260208190527fada5013122d395ba3c54772283fb069b10426056ef8ca54750cb9bb552a59e7d54919250906001600160a01b03165b6001600160a01b0381166001146104705780838381518110610431576104316109f3565b6001600160a01b039283166020918202929092018101919091529181166000908152918290526040909120541681610468816109c2565b92505061040d565b509092915050565b610480610807565b6001600160a01b038116158015906104a257506001600160a01b038116600114155b80156104b757506001600160a01b0381163014155b6104d35760405162461bcd60e51b81526004016101799061098d565b6001600160a01b0381811660009081526020819052604090205416156105235760405162461bcd60e51b815260206004820152600560248201526411d4cc8c0d60da1b6044820152606401610179565b6001600160a01b0382161580159061054557506001600160a01b038216600114155b6105615760405162461bcd60e51b81526004016101799061098d565b6001600160a01b038381166000908152602081905260409020548116908316146105b55760405162461bcd60e51b8152602060048201526005602482015264475332303560d81b6044820152606401610179565b6001600160a01b03828116600081815260208181526040808320805487871680865283862080549289166001600160a01b0319938416179055968a1685528285208054821690971790965592849052825490941690915591519081527ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf910160405180910390a16040516001600160a01b03821681527f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea269060200160405180910390a1505050565b610685610807565b80600180546106949190610a09565b10156106ca5760405162461bcd60e51b8152602060048201526005602482015264475332303160d81b6044820152606401610179565b6001600160a01b038216158015906106ec57506001600160a01b038216600114155b6107085760405162461bcd60e51b81526004016101799061098d565b6001600160a01b0383811660009081526020819052604090205481169083161461075c5760405162461bcd60e51b8152602060048201526005602482015264475332303560d81b6044820152606401610179565b6001600160a01b03828116600081815260208190526040808220805488861684529183208054929095166001600160a01b031992831617909455918152825490911690915560018054916107af83610a20565b90915550506040516001600160a01b03831681527ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf9060200160405180910390a1806002541461080257610802816102d2565b505050565b33301461083e5760405162461bcd60e51b8152602060048201526005602482015264475330333160d81b6044820152606401610179565b565b80356001600160a01b038116811461085757600080fd5b919050565b6000806040838503121561086f57600080fd5b61087883610840565b946020939093013593505050565b60006020828403121561089857600080fd5b6108a182610840565b9392505050565b6000602082840312156108ba57600080fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b818110156109025783516001600160a01b0316835292840192918401916001016108dd565b50909695505050505050565b60008060006060848603121561092357600080fd5b61092c84610840565b925061093a60208501610840565b915061094860408501610840565b90509250925092565b60008060006060848603121561096657600080fd5b61096f84610840565b925061097d60208501610840565b9150604084013590509250925092565b602080825260059082015264475332303360d81b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60006000198214156109d6576109d66109ac565b5060010190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600082821015610a1b57610a1b6109ac565b500390565b600081610a2f57610a2f6109ac565b50600019019056fea2646970667358221220bbb86c145a53c0f7aabaea7cdf668113984ed4b0ebb56314477dbe05531c2cf664736f6c634300080a0033",
  "deployedBytecode": "0x608060405234801561001057600080fd5b506004361061007d5760003560e01c8063a0e67e2b1161005b578063a0e67e2b146100d2578063e318b52b146100e7578063e75235b8146100fa578063f8dc5dd91461010b57600080fd5b80630d582f13146100825780632f54bf6e14610097578063694e80c3146100bf575b600080fd5b61009561009036600461085c565b61011e565b005b6100aa6100a5366004610886565b610297565b60405190151581526020015b60405180910390f35b6100956100cd3660046108a8565b6102d2565b6100da610388565b6040516100b691906108c1565b6100956100f536600461090e565b610478565b6002546040519081526020016100b6565b610095610119366004610951565b61067d565b610126610807565b6001600160a01b0382161580159061014857506001600160a01b038216600114155b801561015d57506001600160a01b0382163014155b6101825760405162461bcd60e51b81526004016101799061098d565b60405180910390fd5b6001600160a01b0382811660009081526020819052604090205416156101d25760405162461bcd60e51b815260206004820152600560248201526411d4cc8c0d60da1b6044820152606401610179565b600060208190527fada5013122d395ba3c54772283fb069b10426056ef8ca54750cb9bb552a59e7d80546001600160a01b03858116808552604085208054929093166001600160a01b03199283161790925560018085528354909116909117909155805491610240836109c2565b90915550506040516001600160a01b03831681527f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea269060200160405180910390a1806002541461029357610293816102d2565b5050565b60006001600160a01b0382166001148015906102cc57506001600160a01b038281166000908152602081905260409020541615155b92915050565b6102da610807565b6001548111156103145760405162461bcd60e51b8152602060048201526005602482015264475332303160d81b6044820152606401610179565b600181101561034d5760405162461bcd60e51b815260206004820152600560248201526423a999181960d91b6044820152606401610179565b60028190556040518181527f610f7ff2b304ae8903c3de74c60c6ab1f7d6226b3f52c5161905bb5ad4039c939060200160405180910390a150565b6060600060015467ffffffffffffffff8111156103a7576103a76109dd565b6040519080825280602002602001820160405280156103d0578160200160208202803683370190505b506001600090815260208190527fada5013122d395ba3c54772283fb069b10426056ef8ca54750cb9bb552a59e7d54919250906001600160a01b03165b6001600160a01b0381166001146104705780838381518110610431576104316109f3565b6001600160a01b039283166020918202929092018101919091529181166000908152918290526040909120541681610468816109c2565b92505061040d565b509092915050565b610480610807565b6001600160a01b038116158015906104a257506001600160a01b038116600114155b80156104b757506001600160a01b0381163014155b6104d35760405162461bcd60e51b81526004016101799061098d565b6001600160a01b0381811660009081526020819052604090205416156105235760405162461bcd60e51b815260206004820152600560248201526411d4cc8c0d60da1b6044820152606401610179565b6001600160a01b0382161580159061054557506001600160a01b038216600114155b6105615760405162461bcd60e51b81526004016101799061098d565b6001600160a01b038381166000908152602081905260409020548116908316146105b55760405162461bcd60e51b8152602060048201526005602482015264475332303560d81b6044820152606401610179565b6001600160a01b03828116600081815260208181526040808320805487871680865283862080549289166001600160a01b0319938416179055968a1685528285208054821690971790965592849052825490941690915591519081527ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf910160405180910390a16040516001600160a01b03821681527f9465fa0c962cc76958e6373a993326400c1c94f8be2fe3a952adfa7f60b2ea269060200160405180910390a1505050565b610685610807565b80600180546106949190610a09565b10156106ca5760405162461bcd60e51b8152602060048201526005602482015264475332303160d81b6044820152606401610179565b6001600160a01b038216158015906106ec57506001600160a01b038216600114155b6107085760405162461bcd60e51b81526004016101799061098d565b6001600160a01b0383811660009081526020819052604090205481169083161461075c5760405162461bcd60e51b8152602060048201526005602482015264475332303560d81b6044820152606401610179565b6001600160a01b03828116600081815260208190526040808220805488861684529183208054929095166001600160a01b031992831617909455918152825490911690915560018054916107af83610a20565b90915550506040516001600160a01b03831681527ff8d49fc529812e9a7c5c50e69c20f0dccc0db8fa95c98bc58cc9a4f1c1299eaf9060200160405180910390a1806002541461080257610802816102d2565b505050565b33301461083e5760405162461bcd60e51b8152602060048201526005602482015264475330333160d81b6044820152606401610179565b565b80356001600160a01b038116811461085757600080fd5b919050565b6000806040838503121561086f57600080fd5b61087883610840565b946020939093013593505050565b60006020828403121561089857600080fd5b6108a182610840565b9392505050565b6000602082840312156108ba57600080fd5b5035919050565b6020808252825182820181905260009190848201906040850190845b818110156109025783516001600160a01b0316835292840192918401916001016108dd565b50909695505050505050565b60008060006060848603121561092357600080fd5b61092c84610840565b925061093a60208501610840565b915061094860408501610840565b90509250925092565b60008060006060848603121561096657600080fd5b61096f84610840565b925061097d60208501610840565b9150604084013590509250925092565b602080825260059082015264475332303360d81b604082015260600190565b634e487b7160e01b600052601160045260246000fd5b60006000198214156109d6576109d66109ac565b5060010190565b634e487b7160e01b600052604160045260246000fd5b634e487b7160e01b600052603260045260246000fd5b600082821015610a1b57610a1b6109ac565b500390565b600081610a2f57610a2f6109ac565b50600019019056fea2646970667358221220bbb86c145a53c0f7aabaea7cdf668113984ed4b0ebb56314477dbe05531c2cf664736f6c634300080a0033",
  "linkReferences": {},
  "deployedLinkReferences": {},
  "devdoc": {
    "author": "Stefan George - <stefan@gnosis.pm>Richard Meissner - <richard@gnosis.pm>",
    "kind": "dev",
    "methods": {
      "addOwnerWithThreshold(address,uint256)": {
        "details": "Allows to add a new owner to the Safe and update the threshold at the same time.      This can only be done via a Safe transaction.",
        "params": {
          "_threshold": "New threshold.",
          "owner": "New owner address."
        }
      },
      "changeThreshold(uint256)": {
        "details": "Allows to update the number of required confirmations by Safe owners.      This can only be done via a Safe transaction.",
        "params": {
          "_threshold": "New threshold."
        }
      },
      "getOwners()": {
        "details": "Returns array of owners.",
        "returns": {
          "_0": "Array of Safe owners."
        }
      },
      "removeOwner(address,address,uint256)": {
        "details": "Allows to remove an owner from the Safe and update the threshold at the same time.      This can only be done via a Safe transaction.",
        "params": {
          "_threshold": "New threshold.",
          "owner": "Owner address to be removed.",
          "prevOwner": "Owner that pointed to the owner to be removed in the linked list"
        }
      },
      "swapOwner(address,address,address)": {
        "details": "Allows to swap/replace an owner from the Safe with another address.      This can only be done via a Safe transaction.",
        "params": {
          "newOwner": "New owner address.",
          "oldOwner": "Owner address to be replaced.",
          "prevOwner": "Owner that pointed to the owner to be replaced in the linked list"
        }
      }
    },
    "title": "OwnerManager - Manages a set of owners and a threshold to perform actions.",
    "version": 1
  },
  "evm": {
    "bytecode": {
      "functionDebugData": {},
      "generatedSources": [],
      "linkReferences": {},
      "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH2 0xA6D DUP1 PUSH2 0x20 PUSH1 0x0 CODECOPY PUSH1 0x0 RETURN INVALID PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA0E67E2B GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xA0E67E2B EQ PUSH2 0xD2 JUMPI DUP1 PUSH4 0xE318B52B EQ PUSH2 0xE7 JUMPI DUP1 PUSH4 0xE75235B8 EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0xF8DC5DD9 EQ PUSH2 0x10B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD582F13 EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0x2F54BF6E EQ PUSH2 0x97 JUMPI DUP1 PUSH4 0x694E80C3 EQ PUSH2 0xBF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x95 PUSH2 0x90 CALLDATASIZE PUSH1 0x4 PUSH2 0x85C JUMP JUMPDEST PUSH2 0x11E JUMP JUMPDEST STOP JUMPDEST PUSH2 0xAA PUSH2 0xA5 CALLDATASIZE PUSH1 0x4 PUSH2 0x886 JUMP JUMPDEST PUSH2 0x297 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x95 PUSH2 0xCD CALLDATASIZE PUSH1 0x4 PUSH2 0x8A8 JUMP JUMPDEST PUSH2 0x2D2 JUMP JUMPDEST PUSH2 0xDA PUSH2 0x388 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB6 SWAP2 SWAP1 PUSH2 0x8C1 JUMP JUMPDEST PUSH2 0x95 PUSH2 0xF5 CALLDATASIZE PUSH1 0x4 PUSH2 0x90E JUMP JUMPDEST PUSH2 0x478 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB6 JUMP JUMPDEST PUSH2 0x95 PUSH2 0x119 CALLDATASIZE PUSH1 0x4 PUSH2 0x951 JUMP JUMPDEST PUSH2 0x67D JUMP JUMPDEST PUSH2 0x126 PUSH2 0x807 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x148 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x1 EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x15D JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ADDRESS EQ ISZERO JUMPDEST PUSH2 0x182 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x179 SWAP1 PUSH2 0x98D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO PUSH2 0x1D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x5 PUSH1 0x24 DUP3 ADD MSTORE PUSH5 0x11D4CC8C0D PUSH1 0xDA SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x179 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH32 0xADA5013122D395BA3C54772283FB069B10426056EF8CA54750CB9BB552A59E7D DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP1 DUP6 MSTORE PUSH1 0x40 DUP6 KECCAK256 DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x1 DUP1 DUP6 MSTORE DUP4 SLOAD SWAP1 SWAP2 AND SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE DUP1 SLOAD SWAP2 PUSH2 0x240 DUP4 PUSH2 0x9C2 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH32 0x9465FA0C962CC76958E6373A993326400C1C94F8BE2FE3A952ADFA7F60B2EA26 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 PUSH1 0x2 SLOAD EQ PUSH2 0x293 JUMPI PUSH2 0x293 DUP2 PUSH2 0x2D2 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x1 EQ DUP1 ISZERO SWAP1 PUSH2 0x2CC JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO ISZERO JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2DA PUSH2 0x807 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 GT ISZERO PUSH2 0x314 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x5 PUSH1 0x24 DUP3 ADD MSTORE PUSH5 0x4753323031 PUSH1 0xD8 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x179 JUMP JUMPDEST PUSH1 0x1 DUP2 LT ISZERO PUSH2 0x34D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x5 PUSH1 0x24 DUP3 ADD MSTORE PUSH5 0x23A9991819 PUSH1 0xD9 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x179 JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x610F7FF2B304AE8903C3DE74C60C6AB1F7D6226B3F52C5161905BB5AD4039C93 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3A7 JUMPI PUSH2 0x3A7 PUSH2 0x9DD JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x3D0 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP PUSH1 0x1 PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH32 0xADA5013122D395BA3C54772283FB069B10426056EF8CA54750CB9BB552A59E7D SLOAD SWAP2 SWAP3 POP SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x1 EQ PUSH2 0x470 JUMPI DUP1 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x431 JUMPI PUSH2 0x431 PUSH2 0x9F3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x20 SWAP2 DUP3 MUL SWAP3 SWAP1 SWAP3 ADD DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP2 DUP3 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD AND DUP2 PUSH2 0x468 DUP2 PUSH2 0x9C2 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x40D JUMP JUMPDEST POP SWAP1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x480 PUSH2 0x807 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x4A2 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x1 EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x4B7 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ADDRESS EQ ISZERO JUMPDEST PUSH2 0x4D3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x179 SWAP1 PUSH2 0x98D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO PUSH2 0x523 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x5 PUSH1 0x24 DUP3 ADD MSTORE PUSH5 0x11D4CC8C0D PUSH1 0xDA SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x179 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x545 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x1 EQ ISZERO JUMPDEST PUSH2 0x561 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x179 SWAP1 PUSH2 0x98D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 AND SWAP1 DUP4 AND EQ PUSH2 0x5B5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x5 PUSH1 0x24 DUP3 ADD MSTORE PUSH5 0x4753323035 PUSH1 0xD8 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x179 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP8 DUP8 AND DUP1 DUP7 MSTORE DUP4 DUP7 KECCAK256 DUP1 SLOAD SWAP3 DUP10 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP4 DUP5 AND OR SWAP1 SSTORE SWAP7 DUP11 AND DUP6 MSTORE DUP3 DUP6 KECCAK256 DUP1 SLOAD DUP3 AND SWAP1 SWAP8 OR SWAP1 SWAP7 SSTORE SWAP3 DUP5 SWAP1 MSTORE DUP3 SLOAD SWAP1 SWAP5 AND SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xF8D49FC529812E9A7C5C50E69C20F0DCCC0DB8FA95C98BC58CC9A4F1C1299EAF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP2 MSTORE PUSH32 0x9465FA0C962CC76958E6373A993326400C1C94F8BE2FE3A952ADFA7F60B2EA26 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x685 PUSH2 0x807 JUMP JUMPDEST DUP1 PUSH1 0x1 DUP1 SLOAD PUSH2 0x694 SWAP2 SWAP1 PUSH2 0xA09 JUMP JUMPDEST LT ISZERO PUSH2 0x6CA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x5 PUSH1 0x24 DUP3 ADD MSTORE PUSH5 0x4753323031 PUSH1 0xD8 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x179 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x6EC JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x1 EQ ISZERO JUMPDEST PUSH2 0x708 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x179 SWAP1 PUSH2 0x98D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 AND SWAP1 DUP4 AND EQ PUSH2 0x75C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x5 PUSH1 0x24 DUP3 ADD MSTORE PUSH5 0x4753323035 PUSH1 0xD8 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x179 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD DUP9 DUP7 AND DUP5 MSTORE SWAP2 DUP4 KECCAK256 DUP1 SLOAD SWAP3 SWAP1 SWAP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP3 DUP4 AND OR SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE DUP3 SLOAD SWAP1 SWAP2 AND SWAP1 SWAP2 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP2 PUSH2 0x7AF DUP4 PUSH2 0xA20 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH32 0xF8D49FC529812E9A7C5C50E69C20F0DCCC0DB8FA95C98BC58CC9A4F1C1299EAF SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 PUSH1 0x2 SLOAD EQ PUSH2 0x802 JUMPI PUSH2 0x802 DUP2 PUSH2 0x2D2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x83E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x5 PUSH1 0x24 DUP3 ADD MSTORE PUSH5 0x4753303331 PUSH1 0xD8 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x179 JUMP JUMPDEST JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x857 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x86F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x878 DUP4 PUSH2 0x840 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x898 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8A1 DUP3 PUSH2 0x840 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x902 JUMPI DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x8DD JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x923 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x92C DUP5 PUSH2 0x840 JUMP JUMPDEST SWAP3 POP PUSH2 0x93A PUSH1 0x20 DUP6 ADD PUSH2 0x840 JUMP JUMPDEST SWAP2 POP PUSH2 0x948 PUSH1 0x40 DUP6 ADD PUSH2 0x840 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x966 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x96F DUP5 PUSH2 0x840 JUMP JUMPDEST SWAP3 POP PUSH2 0x97D PUSH1 0x20 DUP6 ADD PUSH2 0x840 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x5 SWAP1 DUP3 ADD MSTORE PUSH5 0x4753323033 PUSH1 0xD8 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x9D6 JUMPI PUSH2 0x9D6 PUSH2 0x9AC JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0xA1B JUMPI PUSH2 0xA1B PUSH2 0x9AC JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xA2F JUMPI PUSH2 0xA2F PUSH2 0x9AC JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBB 0xB8 PUSH13 0x145A53C0F7AABAEA7CDF668113 SWAP9 0x4E 0xD4 0xB0 0xEB 0xB5 PUSH4 0x14477DBE SDIV MSTORE8 SHR 0x2C 0xF6 PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ",
      "sourceMap": "298:6409:5:-:0;;;;;;;;;;;;;;;;;;;"
    },
    "deployedBytecode": {
      "functionDebugData": {
        "@addOwnerWithThreshold_1702": {
          "entryPoint": 286,
          "id": 1702,
          "parameterSlots": 2,
          "returnSlots": 0
        },
        "@changeThreshold_1910": {
          "entryPoint": 722,
          "id": 1910,
          "parameterSlots": 1,
          "returnSlots": 0
        },
        "@getOwners_1990": {
          "entryPoint": 904,
          "id": 1990,
          "parameterSlots": 0,
          "returnSlots": 1
        },
        "@getThreshold_1918": {
          "entryPoint": null,
          "id": 1918,
          "parameterSlots": 0,
          "returnSlots": 1
        },
        "@isOwner_1939": {
          "entryPoint": 663,
          "id": 1939,
          "parameterSlots": 1,
          "returnSlots": 1
        },
        "@removeOwner_1779": {
          "entryPoint": 1661,
          "id": 1779,
          "parameterSlots": 3,
          "returnSlots": 0
        },
        "@requireSelfCall_2065": {
          "entryPoint": 2055,
          "id": 2065,
          "parameterSlots": 0,
          "returnSlots": 0
        },
        "@swapOwner_1879": {
          "entryPoint": 1144,
          "id": 1879,
          "parameterSlots": 3,
          "returnSlots": 0
        },
        "abi_decode_address": {
          "entryPoint": 2112,
          "id": null,
          "parameterSlots": 1,
          "returnSlots": 1
        },
        "abi_decode_tuple_t_address": {
          "entryPoint": 2182,
          "id": null,
          "parameterSlots": 2,
          "returnSlots": 1
        },
        "abi_decode_tuple_t_addresst_addresst_address": {
          "entryPoint": 2318,
          "id": null,
          "parameterSlots": 2,
          "returnSlots": 3
        },
        "abi_decode_tuple_t_addresst_addresst_uint256": {
          "entryPoint": 2385,
          "id": null,
          "parameterSlots": 2,
          "returnSlots": 3
        },
        "abi_decode_tuple_t_addresst_uint256": {
          "entryPoint": 2140,
          "id": null,
          "parameterSlots": 2,
          "returnSlots": 2
        },
        "abi_decode_tuple_t_uint256": {
          "entryPoint": 2216,
          "id": null,
          "parameterSlots": 2,
          "returnSlots": 1
        },
        "abi_encode_tuple_t_address__to_t_address__fromStack_reversed": {
          "entryPoint": null,
          "id": null,
          "parameterSlots": 2,
          "returnSlots": 1
        },
        "abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed": {
          "entryPoint": 2241,
          "id": null,
          "parameterSlots": 2,
          "returnSlots": 1
        },
        "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed": {
          "entryPoint": null,
          "id": null,
          "parameterSlots": 2,
          "returnSlots": 1
        },
        "abi_encode_tuple_t_stringliteral_2ed3cfd606bc0ca63de16ac40539251d9539eb77db0a0d075dd487d4cf1c74c7__to_t_string_memory_ptr__fromStack_reversed": {
          "entryPoint": null,
          "id": null,
          "parameterSlots": 1,
          "returnSlots": 1
        },
        "abi_encode_tuple_t_stringliteral_3d415fb64f163720f719509288c33af2675ad2c80f86a95800d94f19c802a300__to_t_string_memory_ptr__fromStack_reversed": {
          "entryPoint": 2445,
          "id": null,
          "parameterSlots": 1,
          "returnSlots": 1
        },
        "abi_encode_tuple_t_stringliteral_a5f8340ff5526fa73c9197322cd5a1c742b87b5fdfeb41a9c278b80dab01159b__to_t_string_memory_ptr__fromStack_reversed": {
          "entryPoint": null,
          "id": null,
          "parameterSlots": 1,
          "returnSlots": 1
        },
        "abi_encode_tuple_t_stringliteral_b7248be3e8887f14d79f63d350787adcdb5e12b47898ebd6ef2aacf660fc9f17__to_t_string_memory_ptr__fromStack_reversed": {
          "entryPoint": null,
          "id": null,
          "parameterSlots": 1,
          "returnSlots": 1
        },
        "abi_encode_tuple_t_stringliteral_bd322b68614692ef7b503763b6ccedf066a7ae3f91196a908df3c549d078f597__to_t_string_memory_ptr__fromStack_reversed": {
          "entryPoint": null,
          "id": null,
          "parameterSlots": 1,
          "returnSlots": 1
        },
        "abi_encode_tuple_t_stringliteral_f86d3c4b40d399421f213105cf28bb5b688028c0e3d9bd9eb6f879f0bebe6c39__to_t_string_memory_ptr__fromStack_reversed": {
          "entryPoint": null,
          "id": null,
          "parameterSlots": 1,
          "returnSlots": 1
        },
        "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed": {
          "entryPoint": null,
          "id": null,
          "parameterSlots": 2,
          "returnSlots": 1
        },
        "checked_sub_t_uint256": {
          "entryPoint": 2569,
          "id": null,
          "parameterSlots": 2,
          "returnSlots": 1
        },
        "decrement_t_uint256": {
          "entryPoint": 2592,
          "id": null,
          "parameterSlots": 1,
          "returnSlots": 1
        },
        "increment_t_uint256": {
          "entryPoint": 2498,
          "id": null,
          "parameterSlots": 1,
          "returnSlots": 1
        },
        "panic_error_0x11": {
          "entryPoint": 2476,
          "id": null,
          "parameterSlots": 0,
          "returnSlots": 0
        },
        "panic_error_0x32": {
          "entryPoint": 2547,
          "id": null,
          "parameterSlots": 0,
          "returnSlots": 0
        },
        "panic_error_0x41": {
          "entryPoint": 2525,
          "id": null,
          "parameterSlots": 0,
          "returnSlots": 0
        }
      },
      "generatedSources": [
        {
          "ast": {
            "nodeType": "YulBlock",
            "src": "0:5546:86",
            "statements": [
              {
                "nodeType": "YulBlock",
                "src": "6:3:86",
                "statements": []
              },
              {
                "body": {
                  "nodeType": "YulBlock",
                  "src": "63:124:86",
                  "statements": [
                    {
                      "nodeType": "YulAssignment",
                      "src": "73:29:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "offset",
                            "nodeType": "YulIdentifier",
                            "src": "95:6:86"
                          }
                        ],
                        "functionName": {
                          "name": "calldataload",
                          "nodeType": "YulIdentifier",
                          "src": "82:12:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "82:20:86"
                      },
                      "variableNames": [
                        {
                          "name": "value",
                          "nodeType": "YulIdentifier",
                          "src": "73:5:86"
                        }
                      ]
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "165:16:86",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "174:1:86",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "177:1:86",
                                  "type": "",
                                  "value": "0"
                                }
                              ],
                              "functionName": {
                                "name": "revert",
                                "nodeType": "YulIdentifier",
                                "src": "167:6:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "167:12:86"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "167:12:86"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "value",
                                "nodeType": "YulIdentifier",
                                "src": "124:5:86"
                              },
                              {
                                "arguments": [
                                  {
                                    "name": "value",
                                    "nodeType": "YulIdentifier",
                                    "src": "135:5:86"
                                  },
                                  {
                                    "arguments": [
                                      {
                                        "arguments": [
                                          {
                                            "kind": "number",
                                            "nodeType": "YulLiteral",
                                            "src": "150:3:86",
                                            "type": "",
                                            "value": "160"
                                          },
                                          {
                                            "kind": "number",
                                            "nodeType": "YulLiteral",
                                            "src": "155:1:86",
                                            "type": "",
                                            "value": "1"
                                          }
                                        ],
                                        "functionName": {
                                          "name": "shl",
                                          "nodeType": "YulIdentifier",
                                          "src": "146:3:86"
                                        },
                                        "nodeType": "YulFunctionCall",
                                        "src": "146:11:86"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "159:1:86",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "sub",
                                      "nodeType": "YulIdentifier",
                                      "src": "142:3:86"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "142:19:86"
                                  }
                                ],
                                "functionName": {
                                  "name": "and",
                                  "nodeType": "YulIdentifier",
                                  "src": "131:3:86"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "131:31:86"
                              }
                            ],
                            "functionName": {
                              "name": "eq",
                              "nodeType": "YulIdentifier",
                              "src": "121:2:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "121:42:86"
                          }
                        ],
                        "functionName": {
                          "name": "iszero",
                          "nodeType": "YulIdentifier",
                          "src": "114:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "114:50:86"
                      },
                      "nodeType": "YulIf",
                      "src": "111:70:86"
                    }
                  ]
                },
                "name": "abi_decode_address",
                "nodeType": "YulFunctionDefinition",
                "parameters": [
                  {
                    "name": "offset",
                    "nodeType": "YulTypedName",
                    "src": "42:6:86",
                    "type": ""
                  }
                ],
                "returnVariables": [
                  {
                    "name": "value",
                    "nodeType": "YulTypedName",
                    "src": "53:5:86",
                    "type": ""
                  }
                ],
                "src": "14:173:86"
              },
              {
                "body": {
                  "nodeType": "YulBlock",
                  "src": "279:167:86",
                  "statements": [
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "325:16:86",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "334:1:86",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "337:1:86",
                                  "type": "",
                                  "value": "0"
                                }
                              ],
                              "functionName": {
                                "name": "revert",
                                "nodeType": "YulIdentifier",
                                "src": "327:6:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "327:12:86"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "327:12:86"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "dataEnd",
                                "nodeType": "YulIdentifier",
                                "src": "300:7:86"
                              },
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "309:9:86"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "296:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "296:23:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "321:2:86",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "292:3:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "292:32:86"
                      },
                      "nodeType": "YulIf",
                      "src": "289:52:86"
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "350:39:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "379:9:86"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_address",
                          "nodeType": "YulIdentifier",
                          "src": "360:18:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "360:29:86"
                      },
                      "variableNames": [
                        {
                          "name": "value0",
                          "nodeType": "YulIdentifier",
                          "src": "350:6:86"
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "398:42:86",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "425:9:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "436:2:86",
                                "type": "",
                                "value": "32"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "421:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "421:18:86"
                          }
                        ],
                        "functionName": {
                          "name": "calldataload",
                          "nodeType": "YulIdentifier",
                          "src": "408:12:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "408:32:86"
                      },
                      "variableNames": [
                        {
                          "name": "value1",
                          "nodeType": "YulIdentifier",
                          "src": "398:6:86"
                        }
                      ]
                    }
                  ]
                },
                "name": "abi_decode_tuple_t_addresst_uint256",
                "nodeType": "YulFunctionDefinition",
                "parameters": [
                  {
                    "name": "headStart",
                    "nodeType": "YulTypedName",
                    "src": "237:9:86",
                    "type": ""
                  },
                  {
                    "name": "dataEnd",
                    "nodeType": "YulTypedName",
                    "src": "248:7:86",
                    "type": ""
                  }
                ],
                "returnVariables": [
                  {
                    "name": "value0",
                    "nodeType": "YulTypedName",
                    "src": "260:6:86",
                    "type": ""
                  },
                  {
                    "name": "value1",
                    "nodeType": "YulTypedName",
                    "src": "268:6:86",
                    "type": ""
                  }
                ],
                "src": "192:254:86"
              },
              {
                "body": {
                  "nodeType": "YulBlock",
                  "src": "521:116:86",
                  "statements": [
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "567:16:86",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "576:1:86",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "579:1:86",
                                  "type": "",
                                  "value": "0"
                                }
                              ],
                              "functionName": {
                                "name": "revert",
                                "nodeType": "YulIdentifier",
                                "src": "569:6:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "569:12:86"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "569:12:86"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "dataEnd",
                                "nodeType": "YulIdentifier",
                                "src": "542:7:86"
                              },
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "551:9:86"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "538:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "538:23:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "563:2:86",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "534:3:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "534:32:86"
                      },
                      "nodeType": "YulIf",
                      "src": "531:52:86"
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "592:39:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "621:9:86"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_address",
                          "nodeType": "YulIdentifier",
                          "src": "602:18:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "602:29:86"
                      },
                      "variableNames": [
                        {
                          "name": "value0",
                          "nodeType": "YulIdentifier",
                          "src": "592:6:86"
                        }
                      ]
                    }
                  ]
                },
                "name": "abi_decode_tuple_t_address",
                "nodeType": "YulFunctionDefinition",
                "parameters": [
                  {
                    "name": "headStart",
                    "nodeType": "YulTypedName",
                    "src": "487:9:86",
                    "type": ""
                  },
                  {
                    "name": "dataEnd",
                    "nodeType": "YulTypedName",
                    "src": "498:7:86",
                    "type": ""
                  }
                ],
                "returnVariables": [
                  {
                    "name": "value0",
                    "nodeType": "YulTypedName",
                    "src": "510:6:86",
                    "type": ""
                  }
                ],
                "src": "451:186:86"
              },
              {
                "body": {
                  "nodeType": "YulBlock",
                  "src": "737:92:86",
                  "statements": [
                    {
                      "nodeType": "YulAssignment",
                      "src": "747:26:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "759:9:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "770:2:86",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "755:3:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "755:18:86"
                      },
                      "variableNames": [
                        {
                          "name": "tail",
                          "nodeType": "YulIdentifier",
                          "src": "747:4:86"
                        }
                      ]
                    },
                    {
                      "expression": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "789:9:86"
                          },
                          {
                            "arguments": [
                              {
                                "arguments": [
                                  {
                                    "name": "value0",
                                    "nodeType": "YulIdentifier",
                                    "src": "814:6:86"
                                  }
                                ],
                                "functionName": {
                                  "name": "iszero",
                                  "nodeType": "YulIdentifier",
                                  "src": "807:6:86"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "807:14:86"
                              }
                            ],
                            "functionName": {
                              "name": "iszero",
                              "nodeType": "YulIdentifier",
                              "src": "800:6:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "800:22:86"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "782:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "782:41:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "782:41:86"
                    }
                  ]
                },
                "name": "abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed",
                "nodeType": "YulFunctionDefinition",
                "parameters": [
                  {
                    "name": "headStart",
                    "nodeType": "YulTypedName",
                    "src": "706:9:86",
                    "type": ""
                  },
                  {
                    "name": "value0",
                    "nodeType": "YulTypedName",
                    "src": "717:6:86",
                    "type": ""
                  }
                ],
                "returnVariables": [
                  {
                    "name": "tail",
                    "nodeType": "YulTypedName",
                    "src": "728:4:86",
                    "type": ""
                  }
                ],
                "src": "642:187:86"
              },
              {
                "body": {
                  "nodeType": "YulBlock",
                  "src": "904:110:86",
                  "statements": [
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "950:16:86",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "959:1:86",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "962:1:86",
                                  "type": "",
                                  "value": "0"
                                }
                              ],
                              "functionName": {
                                "name": "revert",
                                "nodeType": "YulIdentifier",
                                "src": "952:6:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "952:12:86"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "952:12:86"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "dataEnd",
                                "nodeType": "YulIdentifier",
                                "src": "925:7:86"
                              },
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "934:9:86"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "921:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "921:23:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "946:2:86",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "917:3:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "917:32:86"
                      },
                      "nodeType": "YulIf",
                      "src": "914:52:86"
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "975:33:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "998:9:86"
                          }
                        ],
                        "functionName": {
                          "name": "calldataload",
                          "nodeType": "YulIdentifier",
                          "src": "985:12:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "985:23:86"
                      },
                      "variableNames": [
                        {
                          "name": "value0",
                          "nodeType": "YulIdentifier",
                          "src": "975:6:86"
                        }
                      ]
                    }
                  ]
                },
                "name": "abi_decode_tuple_t_uint256",
                "nodeType": "YulFunctionDefinition",
                "parameters": [
                  {
                    "name": "headStart",
                    "nodeType": "YulTypedName",
                    "src": "870:9:86",
                    "type": ""
                  },
                  {
                    "name": "dataEnd",
                    "nodeType": "YulTypedName",
                    "src": "881:7:86",
                    "type": ""
                  }
                ],
                "returnVariables": [
                  {
                    "name": "value0",
                    "nodeType": "YulTypedName",
                    "src": "893:6:86",
                    "type": ""
                  }
                ],
                "src": "834:180:86"
              },
              {
                "body": {
                  "nodeType": "YulBlock",
                  "src": "1170:507:86",
                  "statements": [
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "1180:12:86",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1190:2:86",
                        "type": "",
                        "value": "32"
                      },
                      "variables": [
                        {
                          "name": "_1",
                          "nodeType": "YulTypedName",
                          "src": "1184:2:86",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "1201:32:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "1219:9:86"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "1230:2:86"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1215:3:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1215:18:86"
                      },
                      "variables": [
                        {
                          "name": "tail_1",
                          "nodeType": "YulTypedName",
                          "src": "1205:6:86",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "expression": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "1249:9:86"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "1260:2:86"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "1242:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1242:21:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "1242:21:86"
                    },
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "1272:17:86",
                      "value": {
                        "name": "tail_1",
                        "nodeType": "YulIdentifier",
                        "src": "1283:6:86"
                      },
                      "variables": [
                        {
                          "name": "pos",
                          "nodeType": "YulTypedName",
                          "src": "1276:3:86",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "1298:27:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "1318:6:86"
                          }
                        ],
                        "functionName": {
                          "name": "mload",
                          "nodeType": "YulIdentifier",
                          "src": "1312:5:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1312:13:86"
                      },
                      "variables": [
                        {
                          "name": "length",
                          "nodeType": "YulTypedName",
                          "src": "1302:6:86",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "expression": {
                        "arguments": [
                          {
                            "name": "tail_1",
                            "nodeType": "YulIdentifier",
                            "src": "1341:6:86"
                          },
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "1349:6:86"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "1334:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1334:22:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "1334:22:86"
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "1365:25:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "1376:9:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1387:2:86",
                            "type": "",
                            "value": "64"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1372:3:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1372:18:86"
                      },
                      "variableNames": [
                        {
                          "name": "pos",
                          "nodeType": "YulIdentifier",
                          "src": "1365:3:86"
                        }
                      ]
                    },
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "1399:29:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "1417:6:86"
                          },
                          {
                            "name": "_1",
                            "nodeType": "YulIdentifier",
                            "src": "1425:2:86"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "1413:3:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1413:15:86"
                      },
                      "variables": [
                        {
                          "name": "srcPtr",
                          "nodeType": "YulTypedName",
                          "src": "1403:6:86",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "nodeType": "YulVariableDeclaration",
                      "src": "1437:10:86",
                      "value": {
                        "kind": "number",
                        "nodeType": "YulLiteral",
                        "src": "1446:1:86",
                        "type": "",
                        "value": "0"
                      },
                      "variables": [
                        {
                          "name": "i",
                          "nodeType": "YulTypedName",
                          "src": "1441:1:86",
                          "type": ""
                        }
                      ]
                    },
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "1505:146:86",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "name": "pos",
                                  "nodeType": "YulIdentifier",
                                  "src": "1526:3:86"
                                },
                                {
                                  "arguments": [
                                    {
                                      "arguments": [
                                        {
                                          "name": "srcPtr",
                                          "nodeType": "YulIdentifier",
                                          "src": "1541:6:86"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "mload",
                                        "nodeType": "YulIdentifier",
                                        "src": "1535:5:86"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "1535:13:86"
                                    },
                                    {
                                      "arguments": [
                                        {
                                          "arguments": [
                                            {
                                              "kind": "number",
                                              "nodeType": "YulLiteral",
                                              "src": "1558:3:86",
                                              "type": "",
                                              "value": "160"
                                            },
                                            {
                                              "kind": "number",
                                              "nodeType": "YulLiteral",
                                              "src": "1563:1:86",
                                              "type": "",
                                              "value": "1"
                                            }
                                          ],
                                          "functionName": {
                                            "name": "shl",
                                            "nodeType": "YulIdentifier",
                                            "src": "1554:3:86"
                                          },
                                          "nodeType": "YulFunctionCall",
                                          "src": "1554:11:86"
                                        },
                                        {
                                          "kind": "number",
                                          "nodeType": "YulLiteral",
                                          "src": "1567:1:86",
                                          "type": "",
                                          "value": "1"
                                        }
                                      ],
                                      "functionName": {
                                        "name": "sub",
                                        "nodeType": "YulIdentifier",
                                        "src": "1550:3:86"
                                      },
                                      "nodeType": "YulFunctionCall",
                                      "src": "1550:19:86"
                                    }
                                  ],
                                  "functionName": {
                                    "name": "and",
                                    "nodeType": "YulIdentifier",
                                    "src": "1531:3:86"
                                  },
                                  "nodeType": "YulFunctionCall",
                                  "src": "1531:39:86"
                                }
                              ],
                              "functionName": {
                                "name": "mstore",
                                "nodeType": "YulIdentifier",
                                "src": "1519:6:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "1519:52:86"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "1519:52:86"
                          },
                          {
                            "nodeType": "YulAssignment",
                            "src": "1584:19:86",
                            "value": {
                              "arguments": [
                                {
                                  "name": "pos",
                                  "nodeType": "YulIdentifier",
                                  "src": "1595:3:86"
                                },
                                {
                                  "name": "_1",
                                  "nodeType": "YulIdentifier",
                                  "src": "1600:2:86"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "1591:3:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "1591:12:86"
                            },
                            "variableNames": [
                              {
                                "name": "pos",
                                "nodeType": "YulIdentifier",
                                "src": "1584:3:86"
                              }
                            ]
                          },
                          {
                            "nodeType": "YulAssignment",
                            "src": "1616:25:86",
                            "value": {
                              "arguments": [
                                {
                                  "name": "srcPtr",
                                  "nodeType": "YulIdentifier",
                                  "src": "1630:6:86"
                                },
                                {
                                  "name": "_1",
                                  "nodeType": "YulIdentifier",
                                  "src": "1638:2:86"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "1626:3:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "1626:15:86"
                            },
                            "variableNames": [
                              {
                                "name": "srcPtr",
                                "nodeType": "YulIdentifier",
                                "src": "1616:6:86"
                              }
                            ]
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "name": "i",
                            "nodeType": "YulIdentifier",
                            "src": "1467:1:86"
                          },
                          {
                            "name": "length",
                            "nodeType": "YulIdentifier",
                            "src": "1470:6:86"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nodeType": "YulIdentifier",
                          "src": "1464:2:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1464:13:86"
                      },
                      "nodeType": "YulForLoop",
                      "post": {
                        "nodeType": "YulBlock",
                        "src": "1478:18:86",
                        "statements": [
                          {
                            "nodeType": "YulAssignment",
                            "src": "1480:14:86",
                            "value": {
                              "arguments": [
                                {
                                  "name": "i",
                                  "nodeType": "YulIdentifier",
                                  "src": "1489:1:86"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "1492:1:86",
                                  "type": "",
                                  "value": "1"
                                }
                              ],
                              "functionName": {
                                "name": "add",
                                "nodeType": "YulIdentifier",
                                "src": "1485:3:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "1485:9:86"
                            },
                            "variableNames": [
                              {
                                "name": "i",
                                "nodeType": "YulIdentifier",
                                "src": "1480:1:86"
                              }
                            ]
                          }
                        ]
                      },
                      "pre": {
                        "nodeType": "YulBlock",
                        "src": "1460:3:86",
                        "statements": []
                      },
                      "src": "1456:195:86"
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "1660:11:86",
                      "value": {
                        "name": "pos",
                        "nodeType": "YulIdentifier",
                        "src": "1668:3:86"
                      },
                      "variableNames": [
                        {
                          "name": "tail",
                          "nodeType": "YulIdentifier",
                          "src": "1660:4:86"
                        }
                      ]
                    }
                  ]
                },
                "name": "abi_encode_tuple_t_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed",
                "nodeType": "YulFunctionDefinition",
                "parameters": [
                  {
                    "name": "headStart",
                    "nodeType": "YulTypedName",
                    "src": "1139:9:86",
                    "type": ""
                  },
                  {
                    "name": "value0",
                    "nodeType": "YulTypedName",
                    "src": "1150:6:86",
                    "type": ""
                  }
                ],
                "returnVariables": [
                  {
                    "name": "tail",
                    "nodeType": "YulTypedName",
                    "src": "1161:4:86",
                    "type": ""
                  }
                ],
                "src": "1019:658:86"
              },
              {
                "body": {
                  "nodeType": "YulBlock",
                  "src": "1786:230:86",
                  "statements": [
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "1832:16:86",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "1841:1:86",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "1844:1:86",
                                  "type": "",
                                  "value": "0"
                                }
                              ],
                              "functionName": {
                                "name": "revert",
                                "nodeType": "YulIdentifier",
                                "src": "1834:6:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "1834:12:86"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "1834:12:86"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "dataEnd",
                                "nodeType": "YulIdentifier",
                                "src": "1807:7:86"
                              },
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "1816:9:86"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "1803:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "1803:23:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "1828:2:86",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "1799:3:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1799:32:86"
                      },
                      "nodeType": "YulIf",
                      "src": "1796:52:86"
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "1857:39:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "1886:9:86"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_address",
                          "nodeType": "YulIdentifier",
                          "src": "1867:18:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1867:29:86"
                      },
                      "variableNames": [
                        {
                          "name": "value0",
                          "nodeType": "YulIdentifier",
                          "src": "1857:6:86"
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "1905:48:86",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "1938:9:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "1949:2:86",
                                "type": "",
                                "value": "32"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "1934:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "1934:18:86"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_address",
                          "nodeType": "YulIdentifier",
                          "src": "1915:18:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1915:38:86"
                      },
                      "variableNames": [
                        {
                          "name": "value1",
                          "nodeType": "YulIdentifier",
                          "src": "1905:6:86"
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "1962:48:86",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "1995:9:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "2006:2:86",
                                "type": "",
                                "value": "64"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "1991:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "1991:18:86"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_address",
                          "nodeType": "YulIdentifier",
                          "src": "1972:18:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "1972:38:86"
                      },
                      "variableNames": [
                        {
                          "name": "value2",
                          "nodeType": "YulIdentifier",
                          "src": "1962:6:86"
                        }
                      ]
                    }
                  ]
                },
                "name": "abi_decode_tuple_t_addresst_addresst_address",
                "nodeType": "YulFunctionDefinition",
                "parameters": [
                  {
                    "name": "headStart",
                    "nodeType": "YulTypedName",
                    "src": "1736:9:86",
                    "type": ""
                  },
                  {
                    "name": "dataEnd",
                    "nodeType": "YulTypedName",
                    "src": "1747:7:86",
                    "type": ""
                  }
                ],
                "returnVariables": [
                  {
                    "name": "value0",
                    "nodeType": "YulTypedName",
                    "src": "1759:6:86",
                    "type": ""
                  },
                  {
                    "name": "value1",
                    "nodeType": "YulTypedName",
                    "src": "1767:6:86",
                    "type": ""
                  },
                  {
                    "name": "value2",
                    "nodeType": "YulTypedName",
                    "src": "1775:6:86",
                    "type": ""
                  }
                ],
                "src": "1682:334:86"
              },
              {
                "body": {
                  "nodeType": "YulBlock",
                  "src": "2122:76:86",
                  "statements": [
                    {
                      "nodeType": "YulAssignment",
                      "src": "2132:26:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2144:9:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "2155:2:86",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "2140:3:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2140:18:86"
                      },
                      "variableNames": [
                        {
                          "name": "tail",
                          "nodeType": "YulIdentifier",
                          "src": "2132:4:86"
                        }
                      ]
                    },
                    {
                      "expression": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2174:9:86"
                          },
                          {
                            "name": "value0",
                            "nodeType": "YulIdentifier",
                            "src": "2185:6:86"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "2167:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2167:25:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "2167:25:86"
                    }
                  ]
                },
                "name": "abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed",
                "nodeType": "YulFunctionDefinition",
                "parameters": [
                  {
                    "name": "headStart",
                    "nodeType": "YulTypedName",
                    "src": "2091:9:86",
                    "type": ""
                  },
                  {
                    "name": "value0",
                    "nodeType": "YulTypedName",
                    "src": "2102:6:86",
                    "type": ""
                  }
                ],
                "returnVariables": [
                  {
                    "name": "tail",
                    "nodeType": "YulTypedName",
                    "src": "2113:4:86",
                    "type": ""
                  }
                ],
                "src": "2021:177:86"
              },
              {
                "body": {
                  "nodeType": "YulBlock",
                  "src": "2307:224:86",
                  "statements": [
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "2353:16:86",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "2362:1:86",
                                  "type": "",
                                  "value": "0"
                                },
                                {
                                  "kind": "number",
                                  "nodeType": "YulLiteral",
                                  "src": "2365:1:86",
                                  "type": "",
                                  "value": "0"
                                }
                              ],
                              "functionName": {
                                "name": "revert",
                                "nodeType": "YulIdentifier",
                                "src": "2355:6:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "2355:12:86"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "2355:12:86"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "dataEnd",
                                "nodeType": "YulIdentifier",
                                "src": "2328:7:86"
                              },
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "2337:9:86"
                              }
                            ],
                            "functionName": {
                              "name": "sub",
                              "nodeType": "YulIdentifier",
                              "src": "2324:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "2324:23:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "2349:2:86",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "slt",
                          "nodeType": "YulIdentifier",
                          "src": "2320:3:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2320:32:86"
                      },
                      "nodeType": "YulIf",
                      "src": "2317:52:86"
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "2378:39:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2407:9:86"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_address",
                          "nodeType": "YulIdentifier",
                          "src": "2388:18:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2388:29:86"
                      },
                      "variableNames": [
                        {
                          "name": "value0",
                          "nodeType": "YulIdentifier",
                          "src": "2378:6:86"
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "2426:48:86",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "2459:9:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "2470:2:86",
                                "type": "",
                                "value": "32"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "2455:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "2455:18:86"
                          }
                        ],
                        "functionName": {
                          "name": "abi_decode_address",
                          "nodeType": "YulIdentifier",
                          "src": "2436:18:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2436:38:86"
                      },
                      "variableNames": [
                        {
                          "name": "value1",
                          "nodeType": "YulIdentifier",
                          "src": "2426:6:86"
                        }
                      ]
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "2483:42:86",
                      "value": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "2510:9:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "2521:2:86",
                                "type": "",
                                "value": "64"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "2506:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "2506:18:86"
                          }
                        ],
                        "functionName": {
                          "name": "calldataload",
                          "nodeType": "YulIdentifier",
                          "src": "2493:12:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2493:32:86"
                      },
                      "variableNames": [
                        {
                          "name": "value2",
                          "nodeType": "YulIdentifier",
                          "src": "2483:6:86"
                        }
                      ]
                    }
                  ]
                },
                "name": "abi_decode_tuple_t_addresst_addresst_uint256",
                "nodeType": "YulFunctionDefinition",
                "parameters": [
                  {
                    "name": "headStart",
                    "nodeType": "YulTypedName",
                    "src": "2257:9:86",
                    "type": ""
                  },
                  {
                    "name": "dataEnd",
                    "nodeType": "YulTypedName",
                    "src": "2268:7:86",
                    "type": ""
                  }
                ],
                "returnVariables": [
                  {
                    "name": "value0",
                    "nodeType": "YulTypedName",
                    "src": "2280:6:86",
                    "type": ""
                  },
                  {
                    "name": "value1",
                    "nodeType": "YulTypedName",
                    "src": "2288:6:86",
                    "type": ""
                  },
                  {
                    "name": "value2",
                    "nodeType": "YulTypedName",
                    "src": "2296:6:86",
                    "type": ""
                  }
                ],
                "src": "2203:328:86"
              },
              {
                "body": {
                  "nodeType": "YulBlock",
                  "src": "2710:154:86",
                  "statements": [
                    {
                      "expression": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2727:9:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "2738:2:86",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "2720:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2720:21:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "2720:21:86"
                    },
                    {
                      "expression": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "2761:9:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "2772:2:86",
                                "type": "",
                                "value": "32"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "2757:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "2757:18:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "2777:1:86",
                            "type": "",
                            "value": "5"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "2750:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2750:29:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "2750:29:86"
                    },
                    {
                      "expression": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "2799:9:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "2810:2:86",
                                "type": "",
                                "value": "64"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "2795:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "2795:18:86"
                          },
                          {
                            "hexValue": "4753323033",
                            "kind": "string",
                            "nodeType": "YulLiteral",
                            "src": "2815:7:86",
                            "type": "",
                            "value": "GS203"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "2788:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2788:35:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "2788:35:86"
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "2832:26:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "2844:9:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "2855:2:86",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "2840:3:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "2840:18:86"
                      },
                      "variableNames": [
                        {
                          "name": "tail",
                          "nodeType": "YulIdentifier",
                          "src": "2832:4:86"
                        }
                      ]
                    }
                  ]
                },
                "name": "abi_encode_tuple_t_stringliteral_3d415fb64f163720f719509288c33af2675ad2c80f86a95800d94f19c802a300__to_t_string_memory_ptr__fromStack_reversed",
                "nodeType": "YulFunctionDefinition",
                "parameters": [
                  {
                    "name": "headStart",
                    "nodeType": "YulTypedName",
                    "src": "2687:9:86",
                    "type": ""
                  }
                ],
                "returnVariables": [
                  {
                    "name": "tail",
                    "nodeType": "YulTypedName",
                    "src": "2701:4:86",
                    "type": ""
                  }
                ],
                "src": "2536:328:86"
              },
              {
                "body": {
                  "nodeType": "YulBlock",
                  "src": "3043:154:86",
                  "statements": [
                    {
                      "expression": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3060:9:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3071:2:86",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "3053:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3053:21:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "3053:21:86"
                    },
                    {
                      "expression": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "3094:9:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "3105:2:86",
                                "type": "",
                                "value": "32"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "3090:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "3090:18:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3110:1:86",
                            "type": "",
                            "value": "5"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "3083:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3083:29:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "3083:29:86"
                    },
                    {
                      "expression": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "3132:9:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "3143:2:86",
                                "type": "",
                                "value": "64"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "3128:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "3128:18:86"
                          },
                          {
                            "hexValue": "4753323034",
                            "kind": "string",
                            "nodeType": "YulLiteral",
                            "src": "3148:7:86",
                            "type": "",
                            "value": "GS204"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "3121:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3121:35:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "3121:35:86"
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "3165:26:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3177:9:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3188:2:86",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3173:3:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3173:18:86"
                      },
                      "variableNames": [
                        {
                          "name": "tail",
                          "nodeType": "YulIdentifier",
                          "src": "3165:4:86"
                        }
                      ]
                    }
                  ]
                },
                "name": "abi_encode_tuple_t_stringliteral_bd322b68614692ef7b503763b6ccedf066a7ae3f91196a908df3c549d078f597__to_t_string_memory_ptr__fromStack_reversed",
                "nodeType": "YulFunctionDefinition",
                "parameters": [
                  {
                    "name": "headStart",
                    "nodeType": "YulTypedName",
                    "src": "3020:9:86",
                    "type": ""
                  }
                ],
                "returnVariables": [
                  {
                    "name": "tail",
                    "nodeType": "YulTypedName",
                    "src": "3034:4:86",
                    "type": ""
                  }
                ],
                "src": "2869:328:86"
              },
              {
                "body": {
                  "nodeType": "YulBlock",
                  "src": "3234:95:86",
                  "statements": [
                    {
                      "expression": {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3251:1:86",
                            "type": "",
                            "value": "0"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "3258:3:86",
                                "type": "",
                                "value": "224"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "3263:10:86",
                                "type": "",
                                "value": "0x4e487b71"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "3254:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "3254:20:86"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "3244:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3244:31:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "3244:31:86"
                    },
                    {
                      "expression": {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3291:1:86",
                            "type": "",
                            "value": "4"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3294:4:86",
                            "type": "",
                            "value": "0x11"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "3284:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3284:15:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "3284:15:86"
                    },
                    {
                      "expression": {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3315:1:86",
                            "type": "",
                            "value": "0"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3318:4:86",
                            "type": "",
                            "value": "0x24"
                          }
                        ],
                        "functionName": {
                          "name": "revert",
                          "nodeType": "YulIdentifier",
                          "src": "3308:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3308:15:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "3308:15:86"
                    }
                  ]
                },
                "name": "panic_error_0x11",
                "nodeType": "YulFunctionDefinition",
                "src": "3202:127:86"
              },
              {
                "body": {
                  "nodeType": "YulBlock",
                  "src": "3381:88:86",
                  "statements": [
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "3412:22:86",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [],
                              "functionName": {
                                "name": "panic_error_0x11",
                                "nodeType": "YulIdentifier",
                                "src": "3414:16:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "3414:18:86"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "3414:18:86"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "3397:5:86"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "3408:1:86",
                                "type": "",
                                "value": "0"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nodeType": "YulIdentifier",
                              "src": "3404:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "3404:6:86"
                          }
                        ],
                        "functionName": {
                          "name": "eq",
                          "nodeType": "YulIdentifier",
                          "src": "3394:2:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3394:17:86"
                      },
                      "nodeType": "YulIf",
                      "src": "3391:43:86"
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "3443:20:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "3454:5:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3461:1:86",
                            "type": "",
                            "value": "1"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3450:3:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3450:13:86"
                      },
                      "variableNames": [
                        {
                          "name": "ret",
                          "nodeType": "YulIdentifier",
                          "src": "3443:3:86"
                        }
                      ]
                    }
                  ]
                },
                "name": "increment_t_uint256",
                "nodeType": "YulFunctionDefinition",
                "parameters": [
                  {
                    "name": "value",
                    "nodeType": "YulTypedName",
                    "src": "3363:5:86",
                    "type": ""
                  }
                ],
                "returnVariables": [
                  {
                    "name": "ret",
                    "nodeType": "YulTypedName",
                    "src": "3373:3:86",
                    "type": ""
                  }
                ],
                "src": "3334:135:86"
              },
              {
                "body": {
                  "nodeType": "YulBlock",
                  "src": "3575:102:86",
                  "statements": [
                    {
                      "nodeType": "YulAssignment",
                      "src": "3585:26:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3597:9:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3608:2:86",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3593:3:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3593:18:86"
                      },
                      "variableNames": [
                        {
                          "name": "tail",
                          "nodeType": "YulIdentifier",
                          "src": "3585:4:86"
                        }
                      ]
                    },
                    {
                      "expression": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3627:9:86"
                          },
                          {
                            "arguments": [
                              {
                                "name": "value0",
                                "nodeType": "YulIdentifier",
                                "src": "3642:6:86"
                              },
                              {
                                "arguments": [
                                  {
                                    "arguments": [
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "3658:3:86",
                                        "type": "",
                                        "value": "160"
                                      },
                                      {
                                        "kind": "number",
                                        "nodeType": "YulLiteral",
                                        "src": "3663:1:86",
                                        "type": "",
                                        "value": "1"
                                      }
                                    ],
                                    "functionName": {
                                      "name": "shl",
                                      "nodeType": "YulIdentifier",
                                      "src": "3654:3:86"
                                    },
                                    "nodeType": "YulFunctionCall",
                                    "src": "3654:11:86"
                                  },
                                  {
                                    "kind": "number",
                                    "nodeType": "YulLiteral",
                                    "src": "3667:1:86",
                                    "type": "",
                                    "value": "1"
                                  }
                                ],
                                "functionName": {
                                  "name": "sub",
                                  "nodeType": "YulIdentifier",
                                  "src": "3650:3:86"
                                },
                                "nodeType": "YulFunctionCall",
                                "src": "3650:19:86"
                              }
                            ],
                            "functionName": {
                              "name": "and",
                              "nodeType": "YulIdentifier",
                              "src": "3638:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "3638:32:86"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "3620:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3620:51:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "3620:51:86"
                    }
                  ]
                },
                "name": "abi_encode_tuple_t_address__to_t_address__fromStack_reversed",
                "nodeType": "YulFunctionDefinition",
                "parameters": [
                  {
                    "name": "headStart",
                    "nodeType": "YulTypedName",
                    "src": "3544:9:86",
                    "type": ""
                  },
                  {
                    "name": "value0",
                    "nodeType": "YulTypedName",
                    "src": "3555:6:86",
                    "type": ""
                  }
                ],
                "returnVariables": [
                  {
                    "name": "tail",
                    "nodeType": "YulTypedName",
                    "src": "3566:4:86",
                    "type": ""
                  }
                ],
                "src": "3474:203:86"
              },
              {
                "body": {
                  "nodeType": "YulBlock",
                  "src": "3856:154:86",
                  "statements": [
                    {
                      "expression": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3873:9:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3884:2:86",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "3866:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3866:21:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "3866:21:86"
                    },
                    {
                      "expression": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "3907:9:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "3918:2:86",
                                "type": "",
                                "value": "32"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "3903:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "3903:18:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "3923:1:86",
                            "type": "",
                            "value": "5"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "3896:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3896:29:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "3896:29:86"
                    },
                    {
                      "expression": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "3945:9:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "3956:2:86",
                                "type": "",
                                "value": "64"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "3941:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "3941:18:86"
                          },
                          {
                            "hexValue": "4753323031",
                            "kind": "string",
                            "nodeType": "YulLiteral",
                            "src": "3961:7:86",
                            "type": "",
                            "value": "GS201"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "3934:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3934:35:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "3934:35:86"
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "3978:26:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "3990:9:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4001:2:86",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "3986:3:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "3986:18:86"
                      },
                      "variableNames": [
                        {
                          "name": "tail",
                          "nodeType": "YulIdentifier",
                          "src": "3978:4:86"
                        }
                      ]
                    }
                  ]
                },
                "name": "abi_encode_tuple_t_stringliteral_2ed3cfd606bc0ca63de16ac40539251d9539eb77db0a0d075dd487d4cf1c74c7__to_t_string_memory_ptr__fromStack_reversed",
                "nodeType": "YulFunctionDefinition",
                "parameters": [
                  {
                    "name": "headStart",
                    "nodeType": "YulTypedName",
                    "src": "3833:9:86",
                    "type": ""
                  }
                ],
                "returnVariables": [
                  {
                    "name": "tail",
                    "nodeType": "YulTypedName",
                    "src": "3847:4:86",
                    "type": ""
                  }
                ],
                "src": "3682:328:86"
              },
              {
                "body": {
                  "nodeType": "YulBlock",
                  "src": "4189:154:86",
                  "statements": [
                    {
                      "expression": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4206:9:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4217:2:86",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "4199:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4199:21:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "4199:21:86"
                    },
                    {
                      "expression": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "4240:9:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "4251:2:86",
                                "type": "",
                                "value": "32"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "4236:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "4236:18:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4256:1:86",
                            "type": "",
                            "value": "5"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "4229:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4229:29:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "4229:29:86"
                    },
                    {
                      "expression": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "4278:9:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "4289:2:86",
                                "type": "",
                                "value": "64"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "4274:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "4274:18:86"
                          },
                          {
                            "hexValue": "4753323032",
                            "kind": "string",
                            "nodeType": "YulLiteral",
                            "src": "4294:7:86",
                            "type": "",
                            "value": "GS202"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "4267:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4267:35:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "4267:35:86"
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "4311:26:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4323:9:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4334:2:86",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4319:3:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4319:18:86"
                      },
                      "variableNames": [
                        {
                          "name": "tail",
                          "nodeType": "YulIdentifier",
                          "src": "4311:4:86"
                        }
                      ]
                    }
                  ]
                },
                "name": "abi_encode_tuple_t_stringliteral_a5f8340ff5526fa73c9197322cd5a1c742b87b5fdfeb41a9c278b80dab01159b__to_t_string_memory_ptr__fromStack_reversed",
                "nodeType": "YulFunctionDefinition",
                "parameters": [
                  {
                    "name": "headStart",
                    "nodeType": "YulTypedName",
                    "src": "4166:9:86",
                    "type": ""
                  }
                ],
                "returnVariables": [
                  {
                    "name": "tail",
                    "nodeType": "YulTypedName",
                    "src": "4180:4:86",
                    "type": ""
                  }
                ],
                "src": "4015:328:86"
              },
              {
                "body": {
                  "nodeType": "YulBlock",
                  "src": "4380:95:86",
                  "statements": [
                    {
                      "expression": {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4397:1:86",
                            "type": "",
                            "value": "0"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "4404:3:86",
                                "type": "",
                                "value": "224"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "4409:10:86",
                                "type": "",
                                "value": "0x4e487b71"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "4400:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "4400:20:86"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "4390:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4390:31:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "4390:31:86"
                    },
                    {
                      "expression": {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4437:1:86",
                            "type": "",
                            "value": "4"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4440:4:86",
                            "type": "",
                            "value": "0x41"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "4430:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4430:15:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "4430:15:86"
                    },
                    {
                      "expression": {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4461:1:86",
                            "type": "",
                            "value": "0"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4464:4:86",
                            "type": "",
                            "value": "0x24"
                          }
                        ],
                        "functionName": {
                          "name": "revert",
                          "nodeType": "YulIdentifier",
                          "src": "4454:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4454:15:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "4454:15:86"
                    }
                  ]
                },
                "name": "panic_error_0x41",
                "nodeType": "YulFunctionDefinition",
                "src": "4348:127:86"
              },
              {
                "body": {
                  "nodeType": "YulBlock",
                  "src": "4512:95:86",
                  "statements": [
                    {
                      "expression": {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4529:1:86",
                            "type": "",
                            "value": "0"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "4536:3:86",
                                "type": "",
                                "value": "224"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "4541:10:86",
                                "type": "",
                                "value": "0x4e487b71"
                              }
                            ],
                            "functionName": {
                              "name": "shl",
                              "nodeType": "YulIdentifier",
                              "src": "4532:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "4532:20:86"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "4522:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4522:31:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "4522:31:86"
                    },
                    {
                      "expression": {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4569:1:86",
                            "type": "",
                            "value": "4"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4572:4:86",
                            "type": "",
                            "value": "0x32"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "4562:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4562:15:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "4562:15:86"
                    },
                    {
                      "expression": {
                        "arguments": [
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4593:1:86",
                            "type": "",
                            "value": "0"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4596:4:86",
                            "type": "",
                            "value": "0x24"
                          }
                        ],
                        "functionName": {
                          "name": "revert",
                          "nodeType": "YulIdentifier",
                          "src": "4586:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4586:15:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "4586:15:86"
                    }
                  ]
                },
                "name": "panic_error_0x32",
                "nodeType": "YulFunctionDefinition",
                "src": "4480:127:86"
              },
              {
                "body": {
                  "nodeType": "YulBlock",
                  "src": "4786:154:86",
                  "statements": [
                    {
                      "expression": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4803:9:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4814:2:86",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "4796:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4796:21:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "4796:21:86"
                    },
                    {
                      "expression": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "4837:9:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "4848:2:86",
                                "type": "",
                                "value": "32"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "4833:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "4833:18:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4853:1:86",
                            "type": "",
                            "value": "5"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "4826:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4826:29:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "4826:29:86"
                    },
                    {
                      "expression": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "4875:9:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "4886:2:86",
                                "type": "",
                                "value": "64"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "4871:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "4871:18:86"
                          },
                          {
                            "hexValue": "4753323035",
                            "kind": "string",
                            "nodeType": "YulLiteral",
                            "src": "4891:7:86",
                            "type": "",
                            "value": "GS205"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "4864:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4864:35:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "4864:35:86"
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "4908:26:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "4920:9:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "4931:2:86",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "4916:3:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "4916:18:86"
                      },
                      "variableNames": [
                        {
                          "name": "tail",
                          "nodeType": "YulIdentifier",
                          "src": "4908:4:86"
                        }
                      ]
                    }
                  ]
                },
                "name": "abi_encode_tuple_t_stringliteral_f86d3c4b40d399421f213105cf28bb5b688028c0e3d9bd9eb6f879f0bebe6c39__to_t_string_memory_ptr__fromStack_reversed",
                "nodeType": "YulFunctionDefinition",
                "parameters": [
                  {
                    "name": "headStart",
                    "nodeType": "YulTypedName",
                    "src": "4763:9:86",
                    "type": ""
                  }
                ],
                "returnVariables": [
                  {
                    "name": "tail",
                    "nodeType": "YulTypedName",
                    "src": "4777:4:86",
                    "type": ""
                  }
                ],
                "src": "4612:328:86"
              },
              {
                "body": {
                  "nodeType": "YulBlock",
                  "src": "4994:76:86",
                  "statements": [
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "5016:22:86",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [],
                              "functionName": {
                                "name": "panic_error_0x11",
                                "nodeType": "YulIdentifier",
                                "src": "5018:16:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "5018:18:86"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "5018:18:86"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "name": "x",
                            "nodeType": "YulIdentifier",
                            "src": "5010:1:86"
                          },
                          {
                            "name": "y",
                            "nodeType": "YulIdentifier",
                            "src": "5013:1:86"
                          }
                        ],
                        "functionName": {
                          "name": "lt",
                          "nodeType": "YulIdentifier",
                          "src": "5007:2:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5007:8:86"
                      },
                      "nodeType": "YulIf",
                      "src": "5004:34:86"
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "5047:17:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "x",
                            "nodeType": "YulIdentifier",
                            "src": "5059:1:86"
                          },
                          {
                            "name": "y",
                            "nodeType": "YulIdentifier",
                            "src": "5062:1:86"
                          }
                        ],
                        "functionName": {
                          "name": "sub",
                          "nodeType": "YulIdentifier",
                          "src": "5055:3:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5055:9:86"
                      },
                      "variableNames": [
                        {
                          "name": "diff",
                          "nodeType": "YulIdentifier",
                          "src": "5047:4:86"
                        }
                      ]
                    }
                  ]
                },
                "name": "checked_sub_t_uint256",
                "nodeType": "YulFunctionDefinition",
                "parameters": [
                  {
                    "name": "x",
                    "nodeType": "YulTypedName",
                    "src": "4976:1:86",
                    "type": ""
                  },
                  {
                    "name": "y",
                    "nodeType": "YulTypedName",
                    "src": "4979:1:86",
                    "type": ""
                  }
                ],
                "returnVariables": [
                  {
                    "name": "diff",
                    "nodeType": "YulTypedName",
                    "src": "4985:4:86",
                    "type": ""
                  }
                ],
                "src": "4945:125:86"
              },
              {
                "body": {
                  "nodeType": "YulBlock",
                  "src": "5122:89:86",
                  "statements": [
                    {
                      "body": {
                        "nodeType": "YulBlock",
                        "src": "5149:22:86",
                        "statements": [
                          {
                            "expression": {
                              "arguments": [],
                              "functionName": {
                                "name": "panic_error_0x11",
                                "nodeType": "YulIdentifier",
                                "src": "5151:16:86"
                              },
                              "nodeType": "YulFunctionCall",
                              "src": "5151:18:86"
                            },
                            "nodeType": "YulExpressionStatement",
                            "src": "5151:18:86"
                          }
                        ]
                      },
                      "condition": {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "5142:5:86"
                          }
                        ],
                        "functionName": {
                          "name": "iszero",
                          "nodeType": "YulIdentifier",
                          "src": "5135:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5135:13:86"
                      },
                      "nodeType": "YulIf",
                      "src": "5132:39:86"
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "5180:25:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "value",
                            "nodeType": "YulIdentifier",
                            "src": "5191:5:86"
                          },
                          {
                            "arguments": [
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "5202:1:86",
                                "type": "",
                                "value": "0"
                              }
                            ],
                            "functionName": {
                              "name": "not",
                              "nodeType": "YulIdentifier",
                              "src": "5198:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "5198:6:86"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5187:3:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5187:18:86"
                      },
                      "variableNames": [
                        {
                          "name": "ret",
                          "nodeType": "YulIdentifier",
                          "src": "5180:3:86"
                        }
                      ]
                    }
                  ]
                },
                "name": "decrement_t_uint256",
                "nodeType": "YulFunctionDefinition",
                "parameters": [
                  {
                    "name": "value",
                    "nodeType": "YulTypedName",
                    "src": "5104:5:86",
                    "type": ""
                  }
                ],
                "returnVariables": [
                  {
                    "name": "ret",
                    "nodeType": "YulTypedName",
                    "src": "5114:3:86",
                    "type": ""
                  }
                ],
                "src": "5075:136:86"
              },
              {
                "body": {
                  "nodeType": "YulBlock",
                  "src": "5390:154:86",
                  "statements": [
                    {
                      "expression": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5407:9:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5418:2:86",
                            "type": "",
                            "value": "32"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "5400:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5400:21:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "5400:21:86"
                    },
                    {
                      "expression": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "5441:9:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "5452:2:86",
                                "type": "",
                                "value": "32"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "5437:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "5437:18:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5457:1:86",
                            "type": "",
                            "value": "5"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "5430:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5430:29:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "5430:29:86"
                    },
                    {
                      "expression": {
                        "arguments": [
                          {
                            "arguments": [
                              {
                                "name": "headStart",
                                "nodeType": "YulIdentifier",
                                "src": "5479:9:86"
                              },
                              {
                                "kind": "number",
                                "nodeType": "YulLiteral",
                                "src": "5490:2:86",
                                "type": "",
                                "value": "64"
                              }
                            ],
                            "functionName": {
                              "name": "add",
                              "nodeType": "YulIdentifier",
                              "src": "5475:3:86"
                            },
                            "nodeType": "YulFunctionCall",
                            "src": "5475:18:86"
                          },
                          {
                            "hexValue": "4753303331",
                            "kind": "string",
                            "nodeType": "YulLiteral",
                            "src": "5495:7:86",
                            "type": "",
                            "value": "GS031"
                          }
                        ],
                        "functionName": {
                          "name": "mstore",
                          "nodeType": "YulIdentifier",
                          "src": "5468:6:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5468:35:86"
                      },
                      "nodeType": "YulExpressionStatement",
                      "src": "5468:35:86"
                    },
                    {
                      "nodeType": "YulAssignment",
                      "src": "5512:26:86",
                      "value": {
                        "arguments": [
                          {
                            "name": "headStart",
                            "nodeType": "YulIdentifier",
                            "src": "5524:9:86"
                          },
                          {
                            "kind": "number",
                            "nodeType": "YulLiteral",
                            "src": "5535:2:86",
                            "type": "",
                            "value": "96"
                          }
                        ],
                        "functionName": {
                          "name": "add",
                          "nodeType": "YulIdentifier",
                          "src": "5520:3:86"
                        },
                        "nodeType": "YulFunctionCall",
                        "src": "5520:18:86"
                      },
                      "variableNames": [
                        {
                          "name": "tail",
                          "nodeType": "YulIdentifier",
                          "src": "5512:4:86"
                        }
                      ]
                    }
                  ]
                },
                "name": "abi_encode_tuple_t_stringliteral_b7248be3e8887f14d79f63d350787adcdb5e12b47898ebd6ef2aacf660fc9f17__to_t_string_memory_ptr__fromStack_reversed",
                "nodeType": "YulFunctionDefinition",
                "parameters": [
                  {
                    "name": "headStart",
                    "nodeType": "YulTypedName",
                    "src": "5367:9:86",
                    "type": ""
                  }
                ],
                "returnVariables": [
                  {
                    "name": "tail",
                    "nodeType": "YulTypedName",
                    "src": "5381:4:86",
                    "type": ""
                  }
                ],
                "src": "5216:328:86"
              }
            ]
          },
          "contents": "{\n    { }\n    function abi_decode_address(offset) -> value\n    {\n        value := calldataload(offset)\n        if iszero(eq(value, and(value, sub(shl(160, 1), 1)))) { revert(0, 0) }\n    }\n    function abi_decode_tuple_t_addresst_uint256(headStart, dataEnd) -> value0, value1\n    {\n        if slt(sub(dataEnd, headStart), 64) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := calldataload(add(headStart, 32))\n    }\n    function abi_decode_tuple_t_address(headStart, dataEnd) -> value0\n    {\n        if slt(sub(dataEnd, headStart), 32) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n    }\n    function abi_encode_tuple_t_bool__to_t_bool__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, iszero(iszero(value0)))\n    }\n    function abi_decode_tuple_t_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_array$_t_address_$dyn_memory_ptr__to_t_array$_t_address_$dyn_memory_ptr__fromStack_reversed(headStart, value0) -> tail\n    {\n        let _1 := 32\n        let tail_1 := add(headStart, _1)\n        mstore(headStart, _1)\n        let pos := tail_1\n        let length := mload(value0)\n        mstore(tail_1, length)\n        pos := add(headStart, 64)\n        let srcPtr := add(value0, _1)\n        let i := 0\n        for { } lt(i, length) { i := add(i, 1) }\n        {\n            mstore(pos, and(mload(srcPtr), sub(shl(160, 1), 1)))\n            pos := add(pos, _1)\n            srcPtr := add(srcPtr, _1)\n        }\n        tail := pos\n    }\n    function abi_decode_tuple_t_addresst_addresst_address(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        value2 := abi_decode_address(add(headStart, 64))\n    }\n    function abi_encode_tuple_t_uint256__to_t_uint256__fromStack_reversed(headStart, value0) -> tail\n    {\n        tail := add(headStart, 32)\n        mstore(headStart, value0)\n    }\n    function abi_decode_tuple_t_addresst_addresst_uint256(headStart, dataEnd) -> value0, value1, value2\n    {\n        if slt(sub(dataEnd, headStart), 96) { revert(0, 0) }\n        value0 := abi_decode_address(headStart)\n        value1 := abi_decode_address(add(headStart, 32))\n        value2 := calldataload(add(headStart, 64))\n    }\n    function abi_encode_tuple_t_stringliteral_3d415fb64f163720f719509288c33af2675ad2c80f86a95800d94f19c802a300__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 5)\n        mstore(add(headStart, 64), \"GS203\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_bd322b68614692ef7b503763b6ccedf066a7ae3f91196a908df3c549d078f597__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 5)\n        mstore(add(headStart, 64), \"GS204\")\n        tail := add(headStart, 96)\n    }\n    function panic_error_0x11()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x11)\n        revert(0, 0x24)\n    }\n    function increment_t_uint256(value) -> ret\n    {\n        if eq(value, not(0)) { panic_error_0x11() }\n        ret := add(value, 1)\n    }\n    function abi_encode_tuple_t_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_encode_tuple_t_stringliteral_2ed3cfd606bc0ca63de16ac40539251d9539eb77db0a0d075dd487d4cf1c74c7__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 5)\n        mstore(add(headStart, 64), \"GS201\")\n        tail := add(headStart, 96)\n    }\n    function abi_encode_tuple_t_stringliteral_a5f8340ff5526fa73c9197322cd5a1c742b87b5fdfeb41a9c278b80dab01159b__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 5)\n        mstore(add(headStart, 64), \"GS202\")\n        tail := add(headStart, 96)\n    }\n    function panic_error_0x41()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x41)\n        revert(0, 0x24)\n    }\n    function panic_error_0x32()\n    {\n        mstore(0, shl(224, 0x4e487b71))\n        mstore(4, 0x32)\n        revert(0, 0x24)\n    }\n    function abi_encode_tuple_t_stringliteral_f86d3c4b40d399421f213105cf28bb5b688028c0e3d9bd9eb6f879f0bebe6c39__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 5)\n        mstore(add(headStart, 64), \"GS205\")\n        tail := add(headStart, 96)\n    }\n    function checked_sub_t_uint256(x, y) -> diff\n    {\n        if lt(x, y) { panic_error_0x11() }\n        diff := sub(x, y)\n    }\n    function decrement_t_uint256(value) -> ret\n    {\n        if iszero(value) { panic_error_0x11() }\n        ret := add(value, not(0))\n    }\n    function abi_encode_tuple_t_stringliteral_b7248be3e8887f14d79f63d350787adcdb5e12b47898ebd6ef2aacf660fc9f17__to_t_string_memory_ptr__fromStack_reversed(headStart) -> tail\n    {\n        mstore(headStart, 32)\n        mstore(add(headStart, 32), 5)\n        mstore(add(headStart, 64), \"GS031\")\n        tail := add(headStart, 96)\n    }\n}",
          "id": 86,
          "language": "Yul",
          "name": "#utility.yul"
        }
      ],
      "immutableReferences": {},
      "linkReferences": {},
      "opcodes": "PUSH1 0x80 PUSH1 0x40 MSTORE CALLVALUE DUP1 ISZERO PUSH2 0x10 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP PUSH1 0x4 CALLDATASIZE LT PUSH2 0x7D JUMPI PUSH1 0x0 CALLDATALOAD PUSH1 0xE0 SHR DUP1 PUSH4 0xA0E67E2B GT PUSH2 0x5B JUMPI DUP1 PUSH4 0xA0E67E2B EQ PUSH2 0xD2 JUMPI DUP1 PUSH4 0xE318B52B EQ PUSH2 0xE7 JUMPI DUP1 PUSH4 0xE75235B8 EQ PUSH2 0xFA JUMPI DUP1 PUSH4 0xF8DC5DD9 EQ PUSH2 0x10B JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST DUP1 PUSH4 0xD582F13 EQ PUSH2 0x82 JUMPI DUP1 PUSH4 0x2F54BF6E EQ PUSH2 0x97 JUMPI DUP1 PUSH4 0x694E80C3 EQ PUSH2 0xBF JUMPI JUMPDEST PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x95 PUSH2 0x90 CALLDATASIZE PUSH1 0x4 PUSH2 0x85C JUMP JUMPDEST PUSH2 0x11E JUMP JUMPDEST STOP JUMPDEST PUSH2 0xAA PUSH2 0xA5 CALLDATASIZE PUSH1 0x4 PUSH2 0x886 JUMP JUMPDEST PUSH2 0x297 JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 ISZERO ISZERO DUP2 MSTORE PUSH1 0x20 ADD JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 RETURN JUMPDEST PUSH2 0x95 PUSH2 0xCD CALLDATASIZE PUSH1 0x4 PUSH2 0x8A8 JUMP JUMPDEST PUSH2 0x2D2 JUMP JUMPDEST PUSH2 0xDA PUSH2 0x388 JUMP JUMPDEST PUSH1 0x40 MLOAD PUSH2 0xB6 SWAP2 SWAP1 PUSH2 0x8C1 JUMP JUMPDEST PUSH2 0x95 PUSH2 0xF5 CALLDATASIZE PUSH1 0x4 PUSH2 0x90E JUMP JUMPDEST PUSH2 0x478 JUMP JUMPDEST PUSH1 0x2 SLOAD PUSH1 0x40 MLOAD SWAP1 DUP2 MSTORE PUSH1 0x20 ADD PUSH2 0xB6 JUMP JUMPDEST PUSH2 0x95 PUSH2 0x119 CALLDATASIZE PUSH1 0x4 PUSH2 0x951 JUMP JUMPDEST PUSH2 0x67D JUMP JUMPDEST PUSH2 0x126 PUSH2 0x807 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x148 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x1 EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x15D JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ADDRESS EQ ISZERO JUMPDEST PUSH2 0x182 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x179 SWAP1 PUSH2 0x98D JUMP JUMPDEST PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 REVERT JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO PUSH2 0x1D2 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x5 PUSH1 0x24 DUP3 ADD MSTORE PUSH5 0x11D4CC8C0D PUSH1 0xDA SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x179 JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH32 0xADA5013122D395BA3C54772283FB069B10426056EF8CA54750CB9BB552A59E7D DUP1 SLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP6 DUP2 AND DUP1 DUP6 MSTORE PUSH1 0x40 DUP6 KECCAK256 DUP1 SLOAD SWAP3 SWAP1 SWAP4 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP3 DUP4 AND OR SWAP1 SWAP3 SSTORE PUSH1 0x1 DUP1 DUP6 MSTORE DUP4 SLOAD SWAP1 SWAP2 AND SWAP1 SWAP2 OR SWAP1 SWAP2 SSTORE DUP1 SLOAD SWAP2 PUSH2 0x240 DUP4 PUSH2 0x9C2 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH32 0x9465FA0C962CC76958E6373A993326400C1C94F8BE2FE3A952ADFA7F60B2EA26 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 PUSH1 0x2 SLOAD EQ PUSH2 0x293 JUMPI PUSH2 0x293 DUP2 PUSH2 0x2D2 JUMP JUMPDEST POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x1 EQ DUP1 ISZERO SWAP1 PUSH2 0x2CC JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO ISZERO JUMPDEST SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x2DA PUSH2 0x807 JUMP JUMPDEST PUSH1 0x1 SLOAD DUP2 GT ISZERO PUSH2 0x314 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x5 PUSH1 0x24 DUP3 ADD MSTORE PUSH5 0x4753323031 PUSH1 0xD8 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x179 JUMP JUMPDEST PUSH1 0x1 DUP2 LT ISZERO PUSH2 0x34D JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x5 PUSH1 0x24 DUP3 ADD MSTORE PUSH5 0x23A9991819 PUSH1 0xD9 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x179 JUMP JUMPDEST PUSH1 0x2 DUP2 SWAP1 SSTORE PUSH1 0x40 MLOAD DUP2 DUP2 MSTORE PUSH32 0x610F7FF2B304AE8903C3DE74C60C6AB1F7D6226B3F52C5161905BB5AD4039C93 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP JUMP JUMPDEST PUSH1 0x60 PUSH1 0x0 PUSH1 0x1 SLOAD PUSH8 0xFFFFFFFFFFFFFFFF DUP2 GT ISZERO PUSH2 0x3A7 JUMPI PUSH2 0x3A7 PUSH2 0x9DD JUMP JUMPDEST PUSH1 0x40 MLOAD SWAP1 DUP1 DUP3 MSTORE DUP1 PUSH1 0x20 MUL PUSH1 0x20 ADD DUP3 ADD PUSH1 0x40 MSTORE DUP1 ISZERO PUSH2 0x3D0 JUMPI DUP2 PUSH1 0x20 ADD PUSH1 0x20 DUP3 MUL DUP1 CALLDATASIZE DUP4 CALLDATACOPY ADD SWAP1 POP JUMPDEST POP PUSH1 0x1 PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH32 0xADA5013122D395BA3C54772283FB069B10426056EF8CA54750CB9BB552A59E7D SLOAD SWAP2 SWAP3 POP SWAP1 PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x1 EQ PUSH2 0x470 JUMPI DUP1 DUP4 DUP4 DUP2 MLOAD DUP2 LT PUSH2 0x431 JUMPI PUSH2 0x431 PUSH2 0x9F3 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB SWAP3 DUP4 AND PUSH1 0x20 SWAP2 DUP3 MUL SWAP3 SWAP1 SWAP3 ADD DUP2 ADD SWAP2 SWAP1 SWAP2 MSTORE SWAP2 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE SWAP2 DUP3 SWAP1 MSTORE PUSH1 0x40 SWAP1 SWAP2 KECCAK256 SLOAD AND DUP2 PUSH2 0x468 DUP2 PUSH2 0x9C2 JUMP JUMPDEST SWAP3 POP POP PUSH2 0x40D JUMP JUMPDEST POP SWAP1 SWAP3 SWAP2 POP POP JUMP JUMPDEST PUSH2 0x480 PUSH2 0x807 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x4A2 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND PUSH1 0x1 EQ ISZERO JUMPDEST DUP1 ISZERO PUSH2 0x4B7 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND ADDRESS EQ ISZERO JUMPDEST PUSH2 0x4D3 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x179 SWAP1 PUSH2 0x98D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD AND ISZERO PUSH2 0x523 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x5 PUSH1 0x24 DUP3 ADD MSTORE PUSH5 0x11D4CC8C0D PUSH1 0xDA SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x179 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x545 JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x1 EQ ISZERO JUMPDEST PUSH2 0x561 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x179 SWAP1 PUSH2 0x98D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 AND SWAP1 DUP4 AND EQ PUSH2 0x5B5 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x5 PUSH1 0x24 DUP3 ADD MSTORE PUSH5 0x4753323035 PUSH1 0xD8 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x179 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 DUP2 MSTORE PUSH1 0x40 DUP1 DUP4 KECCAK256 DUP1 SLOAD DUP8 DUP8 AND DUP1 DUP7 MSTORE DUP4 DUP7 KECCAK256 DUP1 SLOAD SWAP3 DUP10 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP4 DUP5 AND OR SWAP1 SSTORE SWAP7 DUP11 AND DUP6 MSTORE DUP3 DUP6 KECCAK256 DUP1 SLOAD DUP3 AND SWAP1 SWAP8 OR SWAP1 SWAP7 SSTORE SWAP3 DUP5 SWAP1 MSTORE DUP3 SLOAD SWAP1 SWAP5 AND SWAP1 SWAP2 SSTORE SWAP2 MLOAD SWAP1 DUP2 MSTORE PUSH32 0xF8D49FC529812E9A7C5C50E69C20F0DCCC0DB8FA95C98BC58CC9A4F1C1299EAF SWAP2 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND DUP2 MSTORE PUSH32 0x9465FA0C962CC76958E6373A993326400C1C94F8BE2FE3A952ADFA7F60B2EA26 SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 POP POP POP JUMP JUMPDEST PUSH2 0x685 PUSH2 0x807 JUMP JUMPDEST DUP1 PUSH1 0x1 DUP1 SLOAD PUSH2 0x694 SWAP2 SWAP1 PUSH2 0xA09 JUMP JUMPDEST LT ISZERO PUSH2 0x6CA JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x5 PUSH1 0x24 DUP3 ADD MSTORE PUSH5 0x4753323031 PUSH1 0xD8 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x179 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND ISZERO DUP1 ISZERO SWAP1 PUSH2 0x6EC JUMPI POP PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 AND PUSH1 0x1 EQ ISZERO JUMPDEST PUSH2 0x708 JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x4 ADD PUSH2 0x179 SWAP1 PUSH2 0x98D JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 DUP2 AND PUSH1 0x0 SWAP1 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 SWAP1 KECCAK256 SLOAD DUP2 AND SWAP1 DUP4 AND EQ PUSH2 0x75C JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x5 PUSH1 0x24 DUP3 ADD MSTORE PUSH5 0x4753323035 PUSH1 0xD8 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x179 JUMP JUMPDEST PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP3 DUP2 AND PUSH1 0x0 DUP2 DUP2 MSTORE PUSH1 0x20 DUP2 SWAP1 MSTORE PUSH1 0x40 DUP1 DUP3 KECCAK256 DUP1 SLOAD DUP9 DUP7 AND DUP5 MSTORE SWAP2 DUP4 KECCAK256 DUP1 SLOAD SWAP3 SWAP1 SWAP6 AND PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB NOT SWAP3 DUP4 AND OR SWAP1 SWAP5 SSTORE SWAP2 DUP2 MSTORE DUP3 SLOAD SWAP1 SWAP2 AND SWAP1 SWAP2 SSTORE PUSH1 0x1 DUP1 SLOAD SWAP2 PUSH2 0x7AF DUP4 PUSH2 0xA20 JUMP JUMPDEST SWAP1 SWAP2 SSTORE POP POP PUSH1 0x40 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP4 AND DUP2 MSTORE PUSH32 0xF8D49FC529812E9A7C5C50E69C20F0DCCC0DB8FA95C98BC58CC9A4F1C1299EAF SWAP1 PUSH1 0x20 ADD PUSH1 0x40 MLOAD DUP1 SWAP2 SUB SWAP1 LOG1 DUP1 PUSH1 0x2 SLOAD EQ PUSH2 0x802 JUMPI PUSH2 0x802 DUP2 PUSH2 0x2D2 JUMP JUMPDEST POP POP POP JUMP JUMPDEST CALLER ADDRESS EQ PUSH2 0x83E JUMPI PUSH1 0x40 MLOAD PUSH3 0x461BCD PUSH1 0xE5 SHL DUP2 MSTORE PUSH1 0x20 PUSH1 0x4 DUP3 ADD MSTORE PUSH1 0x5 PUSH1 0x24 DUP3 ADD MSTORE PUSH5 0x4753303331 PUSH1 0xD8 SHL PUSH1 0x44 DUP3 ADD MSTORE PUSH1 0x64 ADD PUSH2 0x179 JUMP JUMPDEST JUMP JUMPDEST DUP1 CALLDATALOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB DUP2 AND DUP2 EQ PUSH2 0x857 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x40 DUP4 DUP6 SUB SLT ISZERO PUSH2 0x86F JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x878 DUP4 PUSH2 0x840 JUMP JUMPDEST SWAP5 PUSH1 0x20 SWAP4 SWAP1 SWAP4 ADD CALLDATALOAD SWAP4 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x898 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x8A1 DUP3 PUSH2 0x840 JUMP JUMPDEST SWAP4 SWAP3 POP POP POP JUMP JUMPDEST PUSH1 0x0 PUSH1 0x20 DUP3 DUP5 SUB SLT ISZERO PUSH2 0x8BA JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST POP CALLDATALOAD SWAP2 SWAP1 POP JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE DUP3 MLOAD DUP3 DUP3 ADD DUP2 SWAP1 MSTORE PUSH1 0x0 SWAP2 SWAP1 DUP5 DUP3 ADD SWAP1 PUSH1 0x40 DUP6 ADD SWAP1 DUP5 JUMPDEST DUP2 DUP2 LT ISZERO PUSH2 0x902 JUMPI DUP4 MLOAD PUSH1 0x1 PUSH1 0x1 PUSH1 0xA0 SHL SUB AND DUP4 MSTORE SWAP3 DUP5 ADD SWAP3 SWAP2 DUP5 ADD SWAP2 PUSH1 0x1 ADD PUSH2 0x8DD JUMP JUMPDEST POP SWAP1 SWAP7 SWAP6 POP POP POP POP POP POP JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x923 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x92C DUP5 PUSH2 0x840 JUMP JUMPDEST SWAP3 POP PUSH2 0x93A PUSH1 0x20 DUP6 ADD PUSH2 0x840 JUMP JUMPDEST SWAP2 POP PUSH2 0x948 PUSH1 0x40 DUP6 ADD PUSH2 0x840 JUMP JUMPDEST SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x0 DUP1 PUSH1 0x0 PUSH1 0x60 DUP5 DUP7 SUB SLT ISZERO PUSH2 0x966 JUMPI PUSH1 0x0 DUP1 REVERT JUMPDEST PUSH2 0x96F DUP5 PUSH2 0x840 JUMP JUMPDEST SWAP3 POP PUSH2 0x97D PUSH1 0x20 DUP6 ADD PUSH2 0x840 JUMP JUMPDEST SWAP2 POP PUSH1 0x40 DUP5 ADD CALLDATALOAD SWAP1 POP SWAP3 POP SWAP3 POP SWAP3 JUMP JUMPDEST PUSH1 0x20 DUP1 DUP3 MSTORE PUSH1 0x5 SWAP1 DUP3 ADD MSTORE PUSH5 0x4753323033 PUSH1 0xD8 SHL PUSH1 0x40 DUP3 ADD MSTORE PUSH1 0x60 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x11 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 PUSH1 0x0 NOT DUP3 EQ ISZERO PUSH2 0x9D6 JUMPI PUSH2 0x9D6 PUSH2 0x9AC JUMP JUMPDEST POP PUSH1 0x1 ADD SWAP1 JUMP JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x41 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH4 0x4E487B71 PUSH1 0xE0 SHL PUSH1 0x0 MSTORE PUSH1 0x32 PUSH1 0x4 MSTORE PUSH1 0x24 PUSH1 0x0 REVERT JUMPDEST PUSH1 0x0 DUP3 DUP3 LT ISZERO PUSH2 0xA1B JUMPI PUSH2 0xA1B PUSH2 0x9AC JUMP JUMPDEST POP SUB SWAP1 JUMP JUMPDEST PUSH1 0x0 DUP2 PUSH2 0xA2F JUMPI PUSH2 0xA2F PUSH2 0x9AC JUMP JUMPDEST POP PUSH1 0x0 NOT ADD SWAP1 JUMP INVALID LOG2 PUSH5 0x6970667358 0x22 SLT KECCAK256 0xBB 0xB8 PUSH13 0x145A53C0F7AABAEA7CDF668113 SWAP9 0x4E 0xD4 0xB0 0xEB 0xB5 PUSH4 0x14477DBE SDIV MSTORE8 SHR 0x2C 0xF6 PUSH5 0x736F6C6343 STOP ADDMOD EXP STOP CALLER ",
      "sourceMap": "298:6409:5:-:0;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;2305:625;;;;;;:::i;:::-;;:::i;:::-;;6048:138;;;;;;:::i;:::-;;:::i;:::-;;;807:14:86;;800:22;782:41;;770:2;755:18;6048:138:5;;;;;;;;5589:360;;;;;;:::i;:::-;;:::i;6268:437::-;;;:::i;:::-;;;;;;;:::i;4507:826::-;;;;;;:::i;:::-;;:::i;5955:87::-;6026:9;;5955:87;;2167:25:86;;;2155:2;2140:18;5955:87:5;2021:177:86;3371:727:5;;;;;;:::i;:::-;;:::i;2305:625::-;440:17:9;:15;:17::i;:::-;-1:-1:-1;;;;;2481:19:5;::::1;::::0;;::::1;::::0;:47:::1;;-1:-1:-1::0;;;;;;2504:24:5;::::1;520:3;2504:24;;2481:47;:73;;;;-1:-1:-1::0;;;;;;2532:22:5;::::1;2549:4;2532:22;;2481:73;2473:91;;;;-1:-1:-1::0;;;2473:91:5::1;;;;;;;:::i;:::-;;;;;;;;;-1:-1:-1::0;;;;;2622:13:5;;::::1;2647:1;2622:13:::0;;;::::1;::::0;;;;;;;::::1;:27:::0;2614:45:::1;;;::::0;-1:-1:-1;;;2614:45:5;;3071:2:86;2614:45:5::1;::::0;::::1;3053:21:86::0;3110:1;3090:18;;;3083:29;-1:-1:-1;;;3128:18:86;;;3121:35;3173:18;;2614:45:5::1;2869:328:86::0;2614:45:5::1;2685:6;:23;::::0;;;;;;-1:-1:-1;;;;;2669:13:5;;::::1;::::0;;;2685:23;2669:13;;:39;;2685:23;;;::::1;-1:-1:-1::0;;;;;;2669:39:5;;::::1;;::::0;;;-1:-1:-1;2718:23:5;;;:31;;;;::::1;::::0;;::::1;::::0;;;2759:12;;;::::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;2786:17:5::1;::::0;-1:-1:-1;;;;;3638:32:86;;3620:51;;2786:17:5::1;::::0;3608:2:86;3593:18;2786:17:5::1;;;;;;;2884:10;2871:9;;:23;2867:56;;2896:27;2912:10;2896:15;:27::i;:::-;2305:625:::0;;:::o;6048:138::-;6101:4;-1:-1:-1;;;;;6124:24:5;;520:3;6124:24;;;;:55;;-1:-1:-1;;;;;;6152:13:5;;;6177:1;6152:13;;;;;;;;;;;;:27;;6124:55;6117:62;6048:138;-1:-1:-1;;6048:138:5:o;5589:360::-;440:17:9;:15;:17::i;:::-;5753:10:5::1;;5739;:24;;5731:42;;;::::0;-1:-1:-1;;;5731:42:5;;3884:2:86;5731:42:5::1;::::0;::::1;3866:21:86::0;3923:1;3903:18;;;3896:29;-1:-1:-1;;;3941:18:86;;;3934:35;3986:18;;5731:42:5::1;3682:328:86::0;5731:42:5::1;5857:1;5843:10;:15;;5835:33;;;::::0;-1:-1:-1;;;5835:33:5;;4217:2:86;5835:33:5::1;::::0;::::1;4199:21:86::0;4256:1;4236:18;;;4229:29;-1:-1:-1;;;4274:18:86;;;4267:35;4319:18;;5835:33:5::1;4015:328:86::0;5835:33:5::1;5878:9;:22:::0;;;5915:27:::1;::::0;2167:25:86;;;5915:27:5::1;::::0;2155:2:86;2140:18;5915:27:5::1;;;;;;;5589:360:::0;:::o;6268:437::-;6310:16;6338:22;6377:10;;6363:25;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;6363:25:5;-1:-1:-1;520:3:5;6432:13;6482:23;;;;;;;;;6338:50;;-1:-1:-1;6432:13:5;-1:-1:-1;;;;;6482:23:5;6515:162;-1:-1:-1;;;;;6522:31:5;;520:3;6522:31;6515:162;;6584:12;6569:5;6575;6569:12;;;;;;;;:::i;:::-;-1:-1:-1;;;;;6569:27:5;;;:12;;;;;;;;;;:27;;;;6625:20;;;:6;:20;;;;;;;;;;;;;6659:7;;;;:::i;:::-;;;;6515:162;;;-1:-1:-1;6693:5:5;;6268:437;-1:-1:-1;;6268:437:5:o;4507:826::-;440:17:9;:15;:17::i;:::-;-1:-1:-1;;;;;4721:22:5;::::1;::::0;;::::1;::::0;:53:::1;;-1:-1:-1::0;;;;;;4747:27:5;::::1;520:3;4747:27;;4721:53;:82;;;;-1:-1:-1::0;;;;;;4778:25:5;::::1;4798:4;4778:25;;4721:82;4713:100;;;;-1:-1:-1::0;;;4713:100:5::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;4871:16:5;;::::1;4899:1;4871:16:::0;;;::::1;::::0;;;;;;;::::1;:30:::0;4863:48:::1;;;::::0;-1:-1:-1;;;4863:48:5;;3071:2:86;4863:48:5::1;::::0;::::1;3053:21:86::0;3110:1;3090:18;;;3083:29;-1:-1:-1;;;3128:18:86;;;3121:35;3173:18;;4863:48:5::1;2869:328:86::0;4863:48:5::1;-1:-1:-1::0;;;;;5012:22:5;::::1;::::0;;::::1;::::0;:53:::1;;-1:-1:-1::0;;;;;;5038:27:5;::::1;520:3;5038:27;;5012:53;5004:71;;;;-1:-1:-1::0;;;5004:71:5::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;5093:17:5;;::::1;:6;:17:::0;;;::::1;::::0;;;;;;;;::::1;:29:::0;;::::1;;5085:47;;;::::0;-1:-1:-1;;;5085:47:5;;4814:2:86;5085:47:5::1;::::0;::::1;4796:21:86::0;4853:1;4833:18;;;4826:29;-1:-1:-1;;;4871:18:86;;;4864:35;4916:18;;5085:47:5::1;4612:328:86::0;5085:47:5::1;-1:-1:-1::0;;;;;5161:16:5;;::::1;:6;:16:::0;;;::::1;::::0;;;;;;;;;5142;;::::1;::::0;;;;;;:35;;5161:16;;::::1;-1:-1:-1::0;;;;;;5142:35:5;;::::1;;::::0;;5187:17;;::::1;::::0;;;;;:28;;;::::1;::::0;;::::1;::::0;;;5225:16;;;;:29;;;;::::1;::::0;;;5269:22;;3620:51:86;;;5269:22:5::1;::::0;3593:18:86;5269:22:5::1;;;;;;;5306:20;::::0;-1:-1:-1;;;;;3638:32:86;;3620:51;;5306:20:5::1;::::0;3608:2:86;3593:18;5306:20:5::1;;;;;;;4507:826:::0;;;:::o;3371:727::-;440:17:9;:15;:17::i;:::-;3607:10:5::1;3602:1;3589:10:::0;::::1;:14;;;;:::i;:::-;:28;;3581:46;;;::::0;-1:-1:-1;;;3581:46:5;;3884:2:86;3581:46:5::1;::::0;::::1;3866:21:86::0;3923:1;3903:18;;;3896:29;-1:-1:-1;;;3941:18:86;;;3934:35;3986:18;;3581:46:5::1;3682:328:86::0;3581:46:5::1;-1:-1:-1::0;;;;;3725:19:5;::::1;::::0;;::::1;::::0;:47:::1;;-1:-1:-1::0;;;;;;3748:24:5;::::1;520:3;3748:24;;3725:47;3717:65;;;;-1:-1:-1::0;;;3717:65:5::1;;;;;;;:::i;:::-;-1:-1:-1::0;;;;;3800:17:5;;::::1;:6;:17:::0;;;::::1;::::0;;;;;;;;::::1;:26:::0;;::::1;;3792:44;;;::::0;-1:-1:-1;;;3792:44:5;;4814:2:86;3792:44:5::1;::::0;::::1;4796:21:86::0;4853:1;4833:18;;;4826:29;-1:-1:-1;;;4871:18:86;;;4864:35;4916:18;;3792:44:5::1;4612:328:86::0;3792:44:5::1;-1:-1:-1::0;;;;;3866:13:5;;::::1;:6;:13:::0;;;::::1;::::0;;;;;;;;;3846:17;;::::1;::::0;;;;;:33;;3866:13;;;::::1;-1:-1:-1::0;;;;;;3846:33:5;;::::1;;::::0;;;3889:13;;;:26;;;;::::1;::::0;;;-1:-1:-1;3925:12:5;;;::::1;::::0;::::1;:::i;:::-;::::0;;;-1:-1:-1;;3952:19:5::1;::::0;-1:-1:-1;;;;;3638:32:86;;3620:51;;3952:19:5::1;::::0;3608:2:86;3593:18;3952:19:5::1;;;;;;;4052:10;4039:9;;:23;4035:56;;4064:27;4080:10;4064:15;:27::i;:::-;3371:727:::0;;;:::o;231:102:9:-;289:10;311:4;289:27;281:45;;;;-1:-1:-1;;;281:45:9;;5418:2:86;281:45:9;;;5400:21:86;5457:1;5437:18;;;5430:29;-1:-1:-1;;;5475:18:86;;;5468:35;5520:18;;281:45:9;5216:328:86;281:45:9;231:102::o;14:173:86:-;82:20;;-1:-1:-1;;;;;131:31:86;;121:42;;111:70;;177:1;174;167:12;111:70;14:173;;;:::o;192:254::-;260:6;268;321:2;309:9;300:7;296:23;292:32;289:52;;;337:1;334;327:12;289:52;360:29;379:9;360:29;:::i;:::-;350:39;436:2;421:18;;;;408:32;;-1:-1:-1;;;192:254:86:o;451:186::-;510:6;563:2;551:9;542:7;538:23;534:32;531:52;;;579:1;576;569:12;531:52;602:29;621:9;602:29;:::i;:::-;592:39;451:186;-1:-1:-1;;;451:186:86:o;834:180::-;893:6;946:2;934:9;925:7;921:23;917:32;914:52;;;962:1;959;952:12;914:52;-1:-1:-1;985:23:86;;834:180;-1:-1:-1;834:180:86:o;1019:658::-;1190:2;1242:21;;;1312:13;;1215:18;;;1334:22;;;1161:4;;1190:2;1413:15;;;;1387:2;1372:18;;;1161:4;1456:195;1470:6;1467:1;1464:13;1456:195;;;1535:13;;-1:-1:-1;;;;;1531:39:86;1519:52;;1626:15;;;;1591:12;;;;1567:1;1485:9;1456:195;;;-1:-1:-1;1668:3:86;;1019:658;-1:-1:-1;;;;;;1019:658:86:o;1682:334::-;1759:6;1767;1775;1828:2;1816:9;1807:7;1803:23;1799:32;1796:52;;;1844:1;1841;1834:12;1796:52;1867:29;1886:9;1867:29;:::i;:::-;1857:39;;1915:38;1949:2;1938:9;1934:18;1915:38;:::i;:::-;1905:48;;1972:38;2006:2;1995:9;1991:18;1972:38;:::i;:::-;1962:48;;1682:334;;;;;:::o;2203:328::-;2280:6;2288;2296;2349:2;2337:9;2328:7;2324:23;2320:32;2317:52;;;2365:1;2362;2355:12;2317:52;2388:29;2407:9;2388:29;:::i;:::-;2378:39;;2436:38;2470:2;2459:9;2455:18;2436:38;:::i;:::-;2426:48;;2521:2;2510:9;2506:18;2493:32;2483:42;;2203:328;;;;;:::o;2536:::-;2738:2;2720:21;;;2777:1;2757:18;;;2750:29;-1:-1:-1;;;2810:2:86;2795:18;;2788:35;2855:2;2840:18;;2536:328::o;3202:127::-;3263:10;3258:3;3254:20;3251:1;3244:31;3294:4;3291:1;3284:15;3318:4;3315:1;3308:15;3334:135;3373:3;-1:-1:-1;;3394:17:86;;3391:43;;;3414:18;;:::i;:::-;-1:-1:-1;3461:1:86;3450:13;;3334:135::o;4348:127::-;4409:10;4404:3;4400:20;4397:1;4390:31;4440:4;4437:1;4430:15;4464:4;4461:1;4454:15;4480:127;4541:10;4536:3;4532:20;4529:1;4522:31;4572:4;4569:1;4562:15;4596:4;4593:1;4586:15;4945:125;4985:4;5013:1;5010;5007:8;5004:34;;;5018:18;;:::i;:::-;-1:-1:-1;5055:9:86;;4945:125::o;5075:136::-;5114:3;5142:5;5132:39;;5151:18;;:::i;:::-;-1:-1:-1;;;5187:18:86;;5075:136::o"
    },
    "gasEstimates": {
      "creation": {
        "codeDepositCost": "533800",
        "executionCost": "568",
        "totalCost": "534368"
      },
      "external": {
        "addOwnerWithThreshold(address,uint256)": "infinite",
        "changeThreshold(uint256)": "25631",
        "getOwners()": "infinite",
        "getThreshold()": "2324",
        "isOwner(address)": "2647",
        "removeOwner(address,address,uint256)": "infinite",
        "swapOwner(address,address,address)": "infinite"
      },
      "internal": {
        "setupOwners(address[] memory,uint256)": "infinite"
      }
    },
    "methodIdentifiers": {
      "addOwnerWithThreshold(address,uint256)": "0d582f13",
      "changeThreshold(uint256)": "694e80c3",
      "getOwners()": "a0e67e2b",
      "getThreshold()": "e75235b8",
      "isOwner(address)": "2f54bf6e",
      "removeOwner(address,address,uint256)": "f8dc5dd9",
      "swapOwner(address,address,address)": "e318b52b"
    }
  },
  "metadata": "{\"compiler\":{\"version\":\"0.8.10+commit.fc410830\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"AddedOwner\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"uint256\",\"name\":\"threshold\",\"type\":\"uint256\"}],\"name\":\"ChangedThreshold\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":false,\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"RemovedOwner\",\"type\":\"event\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_threshold\",\"type\":\"uint256\"}],\"name\":\"addOwnerWithThreshold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_threshold\",\"type\":\"uint256\"}],\"name\":\"changeThreshold\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getOwners\",\"outputs\":[{\"internalType\":\"address[]\",\"name\":\"\",\"type\":\"address[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"getThreshold\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"}],\"name\":\"isOwner\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"prevOwner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"owner\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_threshold\",\"type\":\"uint256\"}],\"name\":\"removeOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"prevOwner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"oldOwner\",\"type\":\"address\"},{\"internalType\":\"address\",\"name\":\"newOwner\",\"type\":\"address\"}],\"name\":\"swapOwner\",\"outputs\":[],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"author\":\"Stefan George - <stefan@gnosis.pm>Richard Meissner - <richard@gnosis.pm>\",\"kind\":\"dev\",\"methods\":{\"addOwnerWithThreshold(address,uint256)\":{\"details\":\"Allows to add a new owner to the Safe and update the threshold at the same time.      This can only be done via a Safe transaction.\",\"params\":{\"_threshold\":\"New threshold.\",\"owner\":\"New owner address.\"}},\"changeThreshold(uint256)\":{\"details\":\"Allows to update the number of required confirmations by Safe owners.      This can only be done via a Safe transaction.\",\"params\":{\"_threshold\":\"New threshold.\"}},\"getOwners()\":{\"details\":\"Returns array of owners.\",\"returns\":{\"_0\":\"Array of Safe owners.\"}},\"removeOwner(address,address,uint256)\":{\"details\":\"Allows to remove an owner from the Safe and update the threshold at the same time.      This can only be done via a Safe transaction.\",\"params\":{\"_threshold\":\"New threshold.\",\"owner\":\"Owner address to be removed.\",\"prevOwner\":\"Owner that pointed to the owner to be removed in the linked list\"}},\"swapOwner(address,address,address)\":{\"details\":\"Allows to swap/replace an owner from the Safe with another address.      This can only be done via a Safe transaction.\",\"params\":{\"newOwner\":\"New owner address.\",\"oldOwner\":\"Owner address to be replaced.\",\"prevOwner\":\"Owner that pointed to the owner to be replaced in the linked list\"}}},\"title\":\"OwnerManager - Manages a set of owners and a threshold to perform actions.\",\"version\":1},\"userdoc\":{\"kind\":\"user\",\"methods\":{\"addOwnerWithThreshold(address,uint256)\":{\"notice\":\"Adds the owner `owner` to the Safe and updates the threshold to `_threshold`.\"},\"changeThreshold(uint256)\":{\"notice\":\"Changes the threshold of the Safe to `_threshold`.\"},\"removeOwner(address,address,uint256)\":{\"notice\":\"Removes the owner `owner` from the Safe and updates the threshold to `_threshold`.\"},\"swapOwner(address,address,address)\":{\"notice\":\"Replaces the owner `oldOwner` in the Safe with `newOwner`.\"}},\"version\":1}},\"settings\":{\"compilationTarget\":{\"@gnosis.pm/safe-contracts/contracts/base/OwnerManager.sol\":\"OwnerManager\"},\"evmVersion\":\"london\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\",\"useLiteralContent\":true},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@gnosis.pm/safe-contracts/contracts/base/OwnerManager.sol\":{\"content\":\"// SPDX-License-Identifier: LGPL-3.0-only\\npragma solidity >=0.7.0 <0.9.0;\\nimport \\\"../common/SelfAuthorized.sol\\\";\\n\\n/// @title OwnerManager - Manages a set of owners and a threshold to perform actions.\\n/// @author Stefan George - <stefan@gnosis.pm>\\n/// @author Richard Meissner - <richard@gnosis.pm>\\ncontract OwnerManager is SelfAuthorized {\\n    event AddedOwner(address owner);\\n    event RemovedOwner(address owner);\\n    event ChangedThreshold(uint256 threshold);\\n\\n    address internal constant SENTINEL_OWNERS = address(0x1);\\n\\n    mapping(address => address) internal owners;\\n    uint256 internal ownerCount;\\n    uint256 internal threshold;\\n\\n    /// @dev Setup function sets initial storage of contract.\\n    /// @param _owners List of Safe owners.\\n    /// @param _threshold Number of required confirmations for a Safe transaction.\\n    function setupOwners(address[] memory _owners, uint256 _threshold) internal {\\n        // Threshold can only be 0 at initialization.\\n        // Check ensures that setup function can only be called once.\\n        require(threshold == 0, \\\"GS200\\\");\\n        // Validate that threshold is smaller than number of added owners.\\n        require(_threshold <= _owners.length, \\\"GS201\\\");\\n        // There has to be at least one Safe owner.\\n        require(_threshold >= 1, \\\"GS202\\\");\\n        // Initializing Safe owners.\\n        address currentOwner = SENTINEL_OWNERS;\\n        for (uint256 i = 0; i < _owners.length; i++) {\\n            // Owner address cannot be null.\\n            address owner = _owners[i];\\n            require(owner != address(0) && owner != SENTINEL_OWNERS && owner != address(this) && currentOwner != owner, \\\"GS203\\\");\\n            // No duplicate owners allowed.\\n            require(owners[owner] == address(0), \\\"GS204\\\");\\n            owners[currentOwner] = owner;\\n            currentOwner = owner;\\n        }\\n        owners[currentOwner] = SENTINEL_OWNERS;\\n        ownerCount = _owners.length;\\n        threshold = _threshold;\\n    }\\n\\n    /// @dev Allows to add a new owner to the Safe and update the threshold at the same time.\\n    ///      This can only be done via a Safe transaction.\\n    /// @notice Adds the owner `owner` to the Safe and updates the threshold to `_threshold`.\\n    /// @param owner New owner address.\\n    /// @param _threshold New threshold.\\n    function addOwnerWithThreshold(address owner, uint256 _threshold) public authorized {\\n        // Owner address cannot be null, the sentinel or the Safe itself.\\n        require(owner != address(0) && owner != SENTINEL_OWNERS && owner != address(this), \\\"GS203\\\");\\n        // No duplicate owners allowed.\\n        require(owners[owner] == address(0), \\\"GS204\\\");\\n        owners[owner] = owners[SENTINEL_OWNERS];\\n        owners[SENTINEL_OWNERS] = owner;\\n        ownerCount++;\\n        emit AddedOwner(owner);\\n        // Change threshold if threshold was changed.\\n        if (threshold != _threshold) changeThreshold(_threshold);\\n    }\\n\\n    /// @dev Allows to remove an owner from the Safe and update the threshold at the same time.\\n    ///      This can only be done via a Safe transaction.\\n    /// @notice Removes the owner `owner` from the Safe and updates the threshold to `_threshold`.\\n    /// @param prevOwner Owner that pointed to the owner to be removed in the linked list\\n    /// @param owner Owner address to be removed.\\n    /// @param _threshold New threshold.\\n    function removeOwner(\\n        address prevOwner,\\n        address owner,\\n        uint256 _threshold\\n    ) public authorized {\\n        // Only allow to remove an owner, if threshold can still be reached.\\n        require(ownerCount - 1 >= _threshold, \\\"GS201\\\");\\n        // Validate owner address and check that it corresponds to owner index.\\n        require(owner != address(0) && owner != SENTINEL_OWNERS, \\\"GS203\\\");\\n        require(owners[prevOwner] == owner, \\\"GS205\\\");\\n        owners[prevOwner] = owners[owner];\\n        owners[owner] = address(0);\\n        ownerCount--;\\n        emit RemovedOwner(owner);\\n        // Change threshold if threshold was changed.\\n        if (threshold != _threshold) changeThreshold(_threshold);\\n    }\\n\\n    /// @dev Allows to swap/replace an owner from the Safe with another address.\\n    ///      This can only be done via a Safe transaction.\\n    /// @notice Replaces the owner `oldOwner` in the Safe with `newOwner`.\\n    /// @param prevOwner Owner that pointed to the owner to be replaced in the linked list\\n    /// @param oldOwner Owner address to be replaced.\\n    /// @param newOwner New owner address.\\n    function swapOwner(\\n        address prevOwner,\\n        address oldOwner,\\n        address newOwner\\n    ) public authorized {\\n        // Owner address cannot be null, the sentinel or the Safe itself.\\n        require(newOwner != address(0) && newOwner != SENTINEL_OWNERS && newOwner != address(this), \\\"GS203\\\");\\n        // No duplicate owners allowed.\\n        require(owners[newOwner] == address(0), \\\"GS204\\\");\\n        // Validate oldOwner address and check that it corresponds to owner index.\\n        require(oldOwner != address(0) && oldOwner != SENTINEL_OWNERS, \\\"GS203\\\");\\n        require(owners[prevOwner] == oldOwner, \\\"GS205\\\");\\n        owners[newOwner] = owners[oldOwner];\\n        owners[prevOwner] = newOwner;\\n        owners[oldOwner] = address(0);\\n        emit RemovedOwner(oldOwner);\\n        emit AddedOwner(newOwner);\\n    }\\n\\n    /// @dev Allows to update the number of required confirmations by Safe owners.\\n    ///      This can only be done via a Safe transaction.\\n    /// @notice Changes the threshold of the Safe to `_threshold`.\\n    /// @param _threshold New threshold.\\n    function changeThreshold(uint256 _threshold) public authorized {\\n        // Validate that threshold is smaller than number of owners.\\n        require(_threshold <= ownerCount, \\\"GS201\\\");\\n        // There has to be at least one Safe owner.\\n        require(_threshold >= 1, \\\"GS202\\\");\\n        threshold = _threshold;\\n        emit ChangedThreshold(threshold);\\n    }\\n\\n    function getThreshold() public view returns (uint256) {\\n        return threshold;\\n    }\\n\\n    function isOwner(address owner) public view returns (bool) {\\n        return owner != SENTINEL_OWNERS && owners[owner] != address(0);\\n    }\\n\\n    /// @dev Returns array of owners.\\n    /// @return Array of Safe owners.\\n    function getOwners() public view returns (address[] memory) {\\n        address[] memory array = new address[](ownerCount);\\n\\n        // populate return array\\n        uint256 index = 0;\\n        address currentOwner = owners[SENTINEL_OWNERS];\\n        while (currentOwner != SENTINEL_OWNERS) {\\n            array[index] = currentOwner;\\n            currentOwner = owners[currentOwner];\\n            index++;\\n        }\\n        return array;\\n    }\\n}\\n\",\"keccak256\":\"0x01a3d64cc0967f42ae63802409f5404d18352516ea2a6335005003d919ffcf12\",\"license\":\"LGPL-3.0-only\"},\"@gnosis.pm/safe-contracts/contracts/common/SelfAuthorized.sol\":{\"content\":\"// SPDX-License-Identifier: LGPL-3.0-only\\npragma solidity >=0.7.0 <0.9.0;\\n\\n/// @title SelfAuthorized - authorizes current contract to perform actions\\n/// @author Richard Meissner - <richard@gnosis.pm>\\ncontract SelfAuthorized {\\n    function requireSelfCall() private view {\\n        require(msg.sender == address(this), \\\"GS031\\\");\\n    }\\n\\n    modifier authorized() {\\n        // This is a function call as it minimized the bytecode size\\n        requireSelfCall();\\n        _;\\n    }\\n}\\n\",\"keccak256\":\"0x59d36efca578b75541a776f62a0d0ef03712fc27b6647c3915c14b572106d7bc\",\"license\":\"LGPL-3.0-only\"}},\"version\":1}",
  "storageLayout": {
    "storage": [
      {
        "astId": 1508,
        "contract": "@gnosis.pm/safe-contracts/contracts/base/OwnerManager.sol:OwnerManager",
        "label": "owners",
        "offset": 0,
        "slot": "0",
        "type": "t_mapping(t_address,t_address)"
      },
      {
        "astId": 1510,
        "contract": "@gnosis.pm/safe-contracts/contracts/base/OwnerManager.sol:OwnerManager",
        "label": "ownerCount",
        "offset": 0,
        "slot": "1",
        "type": "t_uint256"
      },
      {
        "astId": 1512,
        "contract": "@gnosis.pm/safe-contracts/contracts/base/OwnerManager.sol:OwnerManager",
        "label": "threshold",
        "offset": 0,
        "slot": "2",
        "type": "t_uint256"
      }
    ],
    "types": {
      "t_address": {
        "encoding": "inplace",
        "label": "address",
        "numberOfBytes": "20"
      },
      "t_mapping(t_address,t_address)": {
        "encoding": "mapping",
        "key": "t_address",
        "label": "mapping(address => address)",
        "numberOfBytes": "32",
        "value": "t_address"
      },
      "t_uint256": {
        "encoding": "inplace",
        "label": "uint256",
        "numberOfBytes": "32"
      }
    }
  },
  "userdoc": {
    "kind": "user",
    "methods": {
      "addOwnerWithThreshold(address,uint256)": {
        "notice": "Adds the owner `owner` to the Safe and updates the threshold to `_threshold`."
      },
      "changeThreshold(uint256)": {
        "notice": "Changes the threshold of the Safe to `_threshold`."
      },
      "removeOwner(address,address,uint256)": {
        "notice": "Removes the owner `owner` from the Safe and updates the threshold to `_threshold`."
      },
      "swapOwner(address,address,address)": {
        "notice": "Replaces the owner `oldOwner` in the Safe with `newOwner`."
      }
    },
    "version": 1
  }
}