{
  "contractName": "ControlledRecoverable",
  "abi": [
    {
      "inputs": [
        {
          "internalType": "contract Controller",
          "name": "_controller",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "id",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "addr",
          "type": "address"
        }
      ],
      "name": "ModuleCached",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "token",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "recipient",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "balance",
          "type": "uint256"
        }
      ],
      "name": "RecoverFunds",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "bytes32[]",
          "name": "_ids",
          "type": "bytes32[]"
        },
        {
          "internalType": "address[]",
          "name": "_addresses",
          "type": "address[]"
        }
      ],
      "name": "cacheModules",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "getController",
      "outputs": [
        {
          "internalType": "contract Controller",
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [
        {
          "internalType": "address",
          "name": "_token",
          "type": "address"
        },
        {
          "internalType": "address payable",
          "name": "_to",
          "type": "address"
        }
      ],
      "name": "recoverFunds",
      "outputs": [],
      "payable": true,
      "stateMutability": "payable",
      "type": "function"
    }
  ],
  "bytecode": "0x608060405234801561001057600080fd5b5060405161098b38038061098b8339818101604052602081101561003357600080fd5b505180610048816001600160e01b0361012e16565b6040518060400160405280601b81526020017f4354445f434f4e54524f4c4c45525f4e4f545f434f4e54524143540000000000815250906101075760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b838110156100cc5781810151838201526020016100b4565b50505050905090810190601f1680156100f95780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b50600080546001600160a01b0319166001600160a01b039290921691909117905550610151565b60006001600160a01b0382166101465750600061014c565b50803b15155b919050565b61082b806101606000396000f3fe6080604052600436106100345760003560e01c806324ae6a27146100395780633018205f146100695780634e112d361461009a575b600080fd5b6100676004803603604081101561004f57600080fd5b506001600160a01b0381358116916020013516610165565b005b34801561007557600080fd5b5061007e61054a565b604080516001600160a01b039092168252519081900360200190f35b3480156100a657600080fd5b50610067600480360360408110156100bd57600080fd5b810190602081018135600160201b8111156100d757600080fd5b8201836020820111156100e957600080fd5b803590602001918460208302840111600160201b8311171561010a57600080fd5b919390929091602081019035600160201b81111561012757600080fd5b82018360208201111561013957600080fd5b803590602001918460208302840111600160201b8311171561015a57600080fd5b509092509050610559565b6000809054906101000a90046001600160a01b03166001600160a01b0316633c28e88b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156101b257600080fd5b505afa1580156101c6573d6000803e3d6000fd5b505050506040513d60208110156101dc57600080fd5b505160408051808201909152601d81527f4354445f53454e4445525f4e4f545f46554e44535f474f5645524e4f520000006020820152906001600160a01b031633146102a65760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561026b578181015183820152602001610253565b50505050905090810190601f1680156102985780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060006001600160a01b038316610367575060405147906001600160a01b0383169082156108fc029083906000818181858888f193505050506040518060400160405280601e81526020017f4354445f5245434f5645525f544f4b454e5f46554e44535f4641494c45440000815250906103615760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561026b578181015183820152602001610253565b506104fb565b604080516370a0823160e01b815230600482015290516001600160a01b038516916370a08231916024808301926020929190829003018186803b1580156103ad57600080fd5b505afa1580156103c1573d6000803e3d6000fd5b505050506040513d60208110156103d757600080fd5b505160408051808201909152601e81527f4354445f494e53554646494349454e545f5245434f5645525f46554e4453000060208201529091508161045c5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561026b578181015183820152602001610253565b506104776001600160a01b038416838363ffffffff61074e16565b6040518060400160405280601e81526020017f4354445f5245434f5645525f544f4b454e5f46554e44535f4641494c45440000815250906104f95760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561026b578181015183820152602001610253565b505b604080516001600160a01b0380861682528416602082015280820183905290517f724139fea3954691c2c1ee02b3be6be1763b32ec84841f1acad6d3a18695ba0d9181900360600190a1505050565b6000546001600160a01b031690565b60005460408051808201909152601981527821aa222fa9a2a72222a92fa727aa2fa1a7a72a2927a62622a960391b6020820152906001600160a01b031633146105e35760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561026b578181015183820152602001610253565b5060408051808201909152601f81527f4354445f494e56414c49445f4d4f44554c45535f43414348455f494e5055540060208201528382146106665760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561026b578181015183820152602001610253565b5060005b838110156107475782828281811061067e57fe5b905060200201356001600160a01b03166001600087878581811061069e57fe5b90506020020135815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055507f60bd2091d76fc7f3330a4d5e9fd21180cf5de4b91e9972d2d56f41896c036a4085858381811061070457fe5b9050602002013584848481811061071757fe5b60408051948552602091820293909301356001600160a01b031690840152508051918290030190a160010161066a565b5050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526000906107a285826107ab565b95945050505050565b6000806040516020818551602087016000895af180156107ec573d80156107d957602081146107e2576107ea565b600193506107ea565b600183511493505b505b509094935050505056fea265627a7a72315820b51c39c5db8972d4dd1acd99272b404404a2dd22de94a1e852ad324ac0fb9ce464736f6c63430005110032",
  "deployedBytecode": "0x6080604052600436106100345760003560e01c806324ae6a27146100395780633018205f146100695780634e112d361461009a575b600080fd5b6100676004803603604081101561004f57600080fd5b506001600160a01b0381358116916020013516610165565b005b34801561007557600080fd5b5061007e61054a565b604080516001600160a01b039092168252519081900360200190f35b3480156100a657600080fd5b50610067600480360360408110156100bd57600080fd5b810190602081018135600160201b8111156100d757600080fd5b8201836020820111156100e957600080fd5b803590602001918460208302840111600160201b8311171561010a57600080fd5b919390929091602081019035600160201b81111561012757600080fd5b82018360208201111561013957600080fd5b803590602001918460208302840111600160201b8311171561015a57600080fd5b509092509050610559565b6000809054906101000a90046001600160a01b03166001600160a01b0316633c28e88b6040518163ffffffff1660e01b815260040160206040518083038186803b1580156101b257600080fd5b505afa1580156101c6573d6000803e3d6000fd5b505050506040513d60208110156101dc57600080fd5b505160408051808201909152601d81527f4354445f53454e4445525f4e4f545f46554e44535f474f5645524e4f520000006020820152906001600160a01b031633146102a65760405162461bcd60e51b81526004018080602001828103825283818151815260200191508051906020019080838360005b8381101561026b578181015183820152602001610253565b50505050905090810190601f1680156102985780820380516001836020036101000a031916815260200191505b509250505060405180910390fd5b5060006001600160a01b038316610367575060405147906001600160a01b0383169082156108fc029083906000818181858888f193505050506040518060400160405280601e81526020017f4354445f5245434f5645525f544f4b454e5f46554e44535f4641494c45440000815250906103615760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561026b578181015183820152602001610253565b506104fb565b604080516370a0823160e01b815230600482015290516001600160a01b038516916370a08231916024808301926020929190829003018186803b1580156103ad57600080fd5b505afa1580156103c1573d6000803e3d6000fd5b505050506040513d60208110156103d757600080fd5b505160408051808201909152601e81527f4354445f494e53554646494349454e545f5245434f5645525f46554e4453000060208201529091508161045c5760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561026b578181015183820152602001610253565b506104776001600160a01b038416838363ffffffff61074e16565b6040518060400160405280601e81526020017f4354445f5245434f5645525f544f4b454e5f46554e44535f4641494c45440000815250906104f95760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561026b578181015183820152602001610253565b505b604080516001600160a01b0380861682528416602082015280820183905290517f724139fea3954691c2c1ee02b3be6be1763b32ec84841f1acad6d3a18695ba0d9181900360600190a1505050565b6000546001600160a01b031690565b60005460408051808201909152601981527821aa222fa9a2a72222a92fa727aa2fa1a7a72a2927a62622a960391b6020820152906001600160a01b031633146105e35760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561026b578181015183820152602001610253565b5060408051808201909152601f81527f4354445f494e56414c49445f4d4f44554c45535f43414348455f494e5055540060208201528382146106665760405162461bcd60e51b815260206004820181815283516024840152835190928392604490910191908501908083836000831561026b578181015183820152602001610253565b5060005b838110156107475782828281811061067e57fe5b905060200201356001600160a01b03166001600087878581811061069e57fe5b90506020020135815260200190815260200160002060006101000a8154816001600160a01b0302191690836001600160a01b031602179055507f60bd2091d76fc7f3330a4d5e9fd21180cf5de4b91e9972d2d56f41896c036a4085858381811061070457fe5b9050602002013584848481811061071757fe5b60408051948552602091820293909301356001600160a01b031690840152508051918290030190a160010161066a565b5050505050565b604080516001600160a01b038416602482015260448082018490528251808303909101815260649091019091526020810180516001600160e01b031663a9059cbb60e01b1790526000906107a285826107ab565b95945050505050565b6000806040516020818551602087016000895af180156107ec573d80156107d957602081146107e2576107ea565b600193506107ea565b600183511493505b505b509094935050505056fea265627a7a72315820b51c39c5db8972d4dd1acd99272b404404a2dd22de94a1e852ad324ac0fb9ce464736f6c63430005110032",
  "linkReferences": {},
  "deployedLinkReferences": {}
}
