{
  "contractName": "MultiOwnable",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "wallet",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "paused",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "name": "_wallet",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "name": "_contract",
          "type": "address"
        },
        {
          "indexed": true,
          "name": "_wallet",
          "type": "address"
        }
      ],
      "name": "MultiOwnableWalletSet",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [],
      "name": "Pause",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [],
      "name": "Unpause",
      "type": "event"
    },
    {
      "constant": true,
      "inputs": [
        {
          "name": "_address",
          "type": "address"
        }
      ],
      "name": "isOwner",
      "outputs": [
        {
          "name": "",
          "type": "bool"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "pause",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "constant": false,
      "inputs": [],
      "name": "unpause",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.5.2+commit.1df8f40c\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"constant\":true,\"inputs\":[{\"name\":\"_address\",\"type\":\"address\"}],\"name\":\"isOwner\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"unpause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"wallet\",\"outputs\":[{\"name\":\"\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":true,\"inputs\":[],\"name\":\"paused\",\"outputs\":[{\"name\":\"\",\"type\":\"bool\"}],\"payable\":false,\"stateMutability\":\"view\",\"type\":\"function\"},{\"constant\":false,\"inputs\":[],\"name\":\"pause\",\"outputs\":[],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"name\":\"_wallet\",\"type\":\"address\"}],\"payable\":false,\"stateMutability\":\"nonpayable\",\"type\":\"constructor\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"name\":\"_contract\",\"type\":\"address\"},{\"indexed\":true,\"name\":\"_wallet\",\"type\":\"address\"}],\"name\":\"MultiOwnableWalletSet\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Pause\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[],\"name\":\"Unpause\",\"type\":\"event\"}],\"devdoc\":{\"details\":\"MultiOwnable contract.\",\"methods\":{\"pause()\":{\"details\":\"called by any MSW owner to pause, triggers stopped state\"},\"unpause()\":{\"details\":\"called by the MSW (all owners) to unpause, returns to normal state\"}}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"/C/MD/Dev/Soltsice/contracts/MultiOwnable.sol\":\"MultiOwnable\"},\"evmVersion\":\"byzantium\",\"libraries\":{},\"optimizer\":{\"enabled\":false,\"runs\":200},\"remappings\":[]},\"sources\":{\"/C/MD/Dev/Soltsice/contracts/MultiOwnable.sol\":{\"keccak256\":\"0xc97e29a21a9e92cc0ac6ea00ec30b10438fc7f2d259d9b139137094546b0cf86\",\"urls\":[\"bzzr://10ae56fb7e1f1e37ab296ba6584a2cd43eacc49d49d819671d0bb088d9b5c12f\"]}},\"version\":1}",
  "bytecode": "0x608060405260008060146101000a81548160ff02191690831515021790555034801561002a57600080fd5b5060405160208061054a8339810180604052602081101561004a57600080fd5b8101908080519060200190929190505050806000806101000a81548173ffffffffffffffffffffffffffffffffffffffff021916908373ffffffffffffffffffffffffffffffffffffffff1602179055508073ffffffffffffffffffffffffffffffffffffffff163073ffffffffffffffffffffffffffffffffffffffff167fafcdd415329178553b69a5c7b7ece5d86014afa3335a808a26f32110981061a760405160405180910390a350610445806101056000396000f3fe608060405234801561001057600080fd5b5060043610610074576000357c0100000000000000000000000000000000000000000000000000000000900480632f54bf6e146100795780633f4ba83a146100d5578063521eb273146100df5780635c975abb146101295780638456cb591461014b575b600080fd5b6100bb6004803603602081101561008f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610155565b604051808215151515815260200191505060405180910390f35b6100dd6102aa565b005b6100e7610368565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61013161038d565b604051808215151515815260200191505060405180910390f35b6101536103a0565b005b60008173ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806102a357506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561026757600080fd5b505afa15801561027b573d6000803e3d6000fd5b505050506040513d602081101561029157600080fd5b81019080805190602001909291905050505b9050919050565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561030557600080fd5b600060149054906101000a900460ff16151561032057600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060149054906101000a900460ff1681565b6103a933610155565b15156103b457600080fd5b600060149054906101000a900460ff161515156103d057600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a156fea165627a7a723058203b05e1939ceb996d0c2e883c5e061d51267ba6ef99da38091d88adc7aec36bc90029",
  "deployedBytecode": "0x608060405234801561001057600080fd5b5060043610610074576000357c0100000000000000000000000000000000000000000000000000000000900480632f54bf6e146100795780633f4ba83a146100d5578063521eb273146100df5780635c975abb146101295780638456cb591461014b575b600080fd5b6100bb6004803603602081101561008f57600080fd5b81019080803573ffffffffffffffffffffffffffffffffffffffff169060200190929190505050610155565b604051808215151515815260200191505060405180910390f35b6100dd6102aa565b005b6100e7610368565b604051808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060405180910390f35b61013161038d565b604051808215151515815260200191505060405180910390f35b6101536103a0565b005b60008173ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614806102a357506000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16632f54bf6e836040518263ffffffff167c0100000000000000000000000000000000000000000000000000000000028152600401808273ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff16815260200191505060206040518083038186803b15801561026757600080fd5b505afa15801561027b573d6000803e3d6000fd5b505050506040513d602081101561029157600080fd5b81019080805190602001909291905050505b9050919050565b3373ffffffffffffffffffffffffffffffffffffffff166000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1673ffffffffffffffffffffffffffffffffffffffff1614151561030557600080fd5b600060149054906101000a900460ff16151561032057600080fd5b60008060146101000a81548160ff0219169083151502179055507f7805862f689e2f13df9f062ff482ad3ad112aca9e0847911ed832e158c525b3360405160405180910390a1565b6000809054906101000a900473ffffffffffffffffffffffffffffffffffffffff1681565b600060149054906101000a900460ff1681565b6103a933610155565b15156103b457600080fd5b600060149054906101000a900460ff161515156103d057600080fd5b6001600060146101000a81548160ff0219169083151502179055507f6985a02210a168e66602d3235cb6db0e70f92b3ba4d376a33c0f3d9434bff62560405160405180910390a156fea165627a7a723058203b05e1939ceb996d0c2e883c5e061d51267ba6ef99da38091d88adc7aec36bc90029",
  "sourceMap": "243:1878:2:-;;;1277:5;1256:26;;;;;;;;;;;;;;;;;;;;398:163;8:9:-1;5:2;;;30:1;27;20:12;5:2;398:163:2;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;398:163:2;;;;;;;;;;;;;;;;486:7;465:6;;:29;;;;;;;;;;;;;;;;;;546:7;509:45;;539:4;509:45;;;;;;;;;;;;398:163;243:1878;;;;;;",
  "deployedSourceMap": "243:1878:2:-;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;243:1878:2;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;901:291;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;901:291:2;;;;;;;;;;;;;;;;;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1987:132;;;:::i;:::-;;276:25;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1256:26;;;:::i;:::-;;;;;;;;;;;;;;;;;;;;;;;1757:131;;;:::i;:::-;;901:291;981:4;1149:8;1130:27;;1138:6;;;;;;;;;;;1130:27;;;:55;;;;1161:6;;;;;;;;;;;:14;;;1176:8;1161:24;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;1161:24:2;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;1161:24:2;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;1161:24:2;;;;;;;;;;;;;;;;1130:55;1123:62;;901:291;;;:::o;1987:132::-;679:10;660:29;;668:6;;;;;;;;;;;660:29;;;652:38;;;;;;;;1643:6;;;;;;;;;;;1635:15;;;;;;;;2083:5;2074:6;;:14;;;;;;;;;;;;;;;;;;2103:9;;;;;;;;;;1987:132::o;276:25::-;;;;;;;;;;;;;:::o;1256:26::-;;;;;;;;;;;;;:::o;1757:131::-;857:19;865:10;857:7;:19::i;:::-;848:29;;;;;;;;1475:6;;;;;;;;;;;1474:7;1466:16;;;;;;;;1855:4;1846:6;;:13;;;;;;;;;;;;;;;;;;1874:7;;;;;;;;;;1757:131::o",
  "source": "pragma solidity ^0.5.2;\n\n/*\n * A minimum multisig wallet interface. Compatible with MultiSigWallet by Gnosis.\n */\ncontract WalletBasic {\n    function isOwner(address owner) public view returns (bool);\n}\n\n/**\n * @dev MultiOwnable contract.\n */\ncontract MultiOwnable {\n    \n    WalletBasic public wallet;\n    \n    event MultiOwnableWalletSet(address indexed _contract, address indexed _wallet);\n\n    constructor\n        (address _wallet)\n        public\n    {\n        wallet = WalletBasic(_wallet);\n        emit MultiOwnableWalletSet(address(this), _wallet);\n    }\n\n    /** Check if a caller is the MultiSig wallet. */\n    modifier onlyWallet() {\n        require(address(wallet) == msg.sender);\n        _;\n    }\n\n    /** Check if a caller is one of the current owners of the MultiSig wallet or the wallet itself. */\n    modifier onlyOwner() {\n        require (isOwner(msg.sender));\n        _;\n    }\n\n    function isOwner(address _address) \n        public\n        view\n        returns(bool)\n    {\n        // NB due to lazy eval wallet could be a normal address and isOwner won't be called if the first condition is met\n        return address(wallet) == _address || wallet.isOwner(_address);\n    }\n\n\n    /* PAUSABLE with upause callable only by wallet */ \n\n    bool public paused = false;\n\n    event Pause();\n    event Unpause();\n\n    /**\n    * @dev Modifier to make a function callable only when the contract is not paused.\n    */\n    modifier whenNotPaused() {\n        require(!paused);\n        _;\n    }\n\n    /**\n    * @dev Modifier to make a function callable only when the contract is paused.\n    */\n    modifier whenPaused() {\n        require(paused);\n        _;\n    }\n\n    /**\n    * @dev called by any MSW owner to pause, triggers stopped state\n    */\n    function pause() \n        onlyOwner\n        whenNotPaused \n        public \n    {\n        paused = true;\n        emit Pause();\n    }\n\n    /**\n    * @dev called by the MSW (all owners) to unpause, returns to normal state\n    */\n    function unpause() \n        onlyWallet\n        whenPaused\n        public\n    {\n        paused = false;\n        emit Unpause();\n    }\n}\n",
  "sourcePath": "C:\\MD\\Dev\\Soltsice\\contracts\\MultiOwnable.sol",
  "ast": {
    "absolutePath": "/C/MD/Dev/Soltsice/contracts/MultiOwnable.sol",
    "exportedSymbols": {
      "MultiOwnable": [
        535
      ],
      "WalletBasic": [
        410
      ]
    },
    "id": 536,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 402,
        "literals": [
          "solidity",
          "^",
          "0.5",
          ".2"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:2"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": false,
        "id": 410,
        "linearizedBaseContracts": [
          410
        ],
        "name": "WalletBasic",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": null,
            "documentation": null,
            "id": 409,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "isOwner",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 405,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 404,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 409,
                  "src": "158:13:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 403,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "158:7:2",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "157:15:2"
            },
            "returnParameters": {
              "id": 408,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 407,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 409,
                  "src": "194:4:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 406,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "194:4:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "193:6:2"
            },
            "scope": 410,
            "src": "141:59:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 536,
        "src": "114:88:2"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": "@dev MultiOwnable contract.",
        "fullyImplemented": true,
        "id": 535,
        "linearizedBaseContracts": [
          535
        ],
        "name": "MultiOwnable",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 412,
            "name": "wallet",
            "nodeType": "VariableDeclaration",
            "scope": 535,
            "src": "276:25:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_WalletBasic_$410",
              "typeString": "contract WalletBasic"
            },
            "typeName": {
              "contractScope": null,
              "id": 411,
              "name": "WalletBasic",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 410,
              "src": "276:11:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_WalletBasic_$410",
                "typeString": "contract WalletBasic"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 418,
            "name": "MultiOwnableWalletSet",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 417,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 414,
                  "indexed": true,
                  "name": "_contract",
                  "nodeType": "VariableDeclaration",
                  "scope": 418,
                  "src": "340:25:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 413,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "340:7:2",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 416,
                  "indexed": true,
                  "name": "_wallet",
                  "nodeType": "VariableDeclaration",
                  "scope": 418,
                  "src": "367:23:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 415,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "367:7:2",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "339:52:2"
            },
            "src": "312:80:2"
          },
          {
            "body": {
              "id": 436,
              "nodeType": "Block",
              "src": "455:106:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 427,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 423,
                      "name": "wallet",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 412,
                      "src": "465:6:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_WalletBasic_$410",
                        "typeString": "contract WalletBasic"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 425,
                          "name": "_wallet",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 420,
                          "src": "486:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 424,
                        "name": "WalletBasic",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 410,
                        "src": "474:11:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WalletBasic_$410_$",
                          "typeString": "type(contract WalletBasic)"
                        }
                      },
                      "id": 426,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "474:20:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_WalletBasic_$410",
                        "typeString": "contract WalletBasic"
                      }
                    },
                    "src": "465:29:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_WalletBasic_$410",
                      "typeString": "contract WalletBasic"
                    }
                  },
                  "id": 428,
                  "nodeType": "ExpressionStatement",
                  "src": "465:29:2"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 431,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1949,
                            "src": "539:4:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_MultiOwnable_$535",
                              "typeString": "contract MultiOwnable"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_MultiOwnable_$535",
                              "typeString": "contract MultiOwnable"
                            }
                          ],
                          "id": 430,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "531:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 432,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "531:13:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 433,
                        "name": "_wallet",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 420,
                        "src": "546:7:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 429,
                      "name": "MultiOwnableWalletSet",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 418,
                      "src": "509:21:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$",
                        "typeString": "function (address,address)"
                      }
                    },
                    "id": 434,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "509:45:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 435,
                  "nodeType": "EmitStatement",
                  "src": "504:50:2"
                }
              ]
            },
            "documentation": null,
            "id": 437,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 421,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 420,
                  "name": "_wallet",
                  "nodeType": "VariableDeclaration",
                  "scope": 437,
                  "src": "419:15:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 419,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "419:7:2",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "418:17:2"
            },
            "returnParameters": {
              "id": 422,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "455:0:2"
            },
            "scope": 535,
            "src": "398:163:2",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 449,
              "nodeType": "Block",
              "src": "642:66:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 445,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 441,
                              "name": "wallet",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 412,
                              "src": "668:6:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_WalletBasic_$410",
                                "typeString": "contract WalletBasic"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_WalletBasic_$410",
                                "typeString": "contract WalletBasic"
                              }
                            ],
                            "id": 440,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "660:7:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 442,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "660:15:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 443,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1934,
                            "src": "679:3:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 444,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "679:10:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "src": "660:29:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 439,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        1937,
                        1938
                      ],
                      "referencedDeclaration": 1937,
                      "src": "652:7:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 446,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "652:38:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 447,
                  "nodeType": "ExpressionStatement",
                  "src": "652:38:2"
                },
                {
                  "id": 448,
                  "nodeType": "PlaceholderStatement",
                  "src": "700:1:2"
                }
              ]
            },
            "documentation": "Check if a caller is the MultiSig wallet. ",
            "id": 450,
            "name": "onlyWallet",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 438,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "639:2:2"
            },
            "src": "620:88:2",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 460,
              "nodeType": "Block",
              "src": "838:57:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 454,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1934,
                              "src": "865:3:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 455,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "865:10:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "id": 453,
                          "name": "isOwner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 480,
                          "src": "857:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$",
                            "typeString": "function (address) view returns (bool)"
                          }
                        },
                        "id": 456,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "857:19:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 452,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        1937,
                        1938
                      ],
                      "referencedDeclaration": 1937,
                      "src": "848:7:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 457,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "848:29:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 458,
                  "nodeType": "ExpressionStatement",
                  "src": "848:29:2"
                },
                {
                  "id": 459,
                  "nodeType": "PlaceholderStatement",
                  "src": "887:1:2"
                }
              ]
            },
            "documentation": "Check if a caller is one of the current owners of the MultiSig wallet or the wallet itself. ",
            "id": 461,
            "name": "onlyOwner",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 451,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "835:2:2"
            },
            "src": "817:78:2",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 479,
              "nodeType": "Block",
              "src": "991:201:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 477,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "id": 472,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 469,
                            "name": "wallet",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 412,
                            "src": "1138:6:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_WalletBasic_$410",
                              "typeString": "contract WalletBasic"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_WalletBasic_$410",
                              "typeString": "contract WalletBasic"
                            }
                          ],
                          "id": 468,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1130:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 470,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1130:15:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 471,
                        "name": "_address",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 463,
                        "src": "1149:8:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "src": "1130:27:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 475,
                          "name": "_address",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 463,
                          "src": "1176:8:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 473,
                          "name": "wallet",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 412,
                          "src": "1161:6:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_WalletBasic_$410",
                            "typeString": "contract WalletBasic"
                          }
                        },
                        "id": 474,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "isOwner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 409,
                        "src": "1161:14:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$",
                          "typeString": "function (address) view external returns (bool)"
                        }
                      },
                      "id": 476,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1161:24:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "1130:55:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 467,
                  "id": 478,
                  "nodeType": "Return",
                  "src": "1123:62:2"
                }
              ]
            },
            "documentation": null,
            "id": 480,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "isOwner",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 464,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 463,
                  "name": "_address",
                  "nodeType": "VariableDeclaration",
                  "scope": 480,
                  "src": "918:16:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 462,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "918:7:2",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "917:18:2"
            },
            "returnParameters": {
              "id": 467,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 466,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 480,
                  "src": "981:4:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 465,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "981:4:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "980:6:2"
            },
            "scope": 535,
            "src": "901:291:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 483,
            "name": "paused",
            "nodeType": "VariableDeclaration",
            "scope": 535,
            "src": "1256:26:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 481,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "1256:4:2",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "66616c7365",
              "id": 482,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "bool",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1277:5:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              },
              "value": "false"
            },
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 485,
            "name": "Pause",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 484,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1300:2:2"
            },
            "src": "1289:14:2"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 487,
            "name": "Unpause",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 486,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1321:2:2"
            },
            "src": "1308:16:2"
          },
          {
            "body": {
              "id": 495,
              "nodeType": "Block",
              "src": "1456:44:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 491,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "1474:7:2",
                        "subExpression": {
                          "argumentTypes": null,
                          "id": 490,
                          "name": "paused",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 483,
                          "src": "1475:6:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 489,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        1937,
                        1938
                      ],
                      "referencedDeclaration": 1937,
                      "src": "1466:7:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 492,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1466:16:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 493,
                  "nodeType": "ExpressionStatement",
                  "src": "1466:16:2"
                },
                {
                  "id": 494,
                  "nodeType": "PlaceholderStatement",
                  "src": "1492:1:2"
                }
              ]
            },
            "documentation": "@dev Modifier to make a function callable only when the contract is not paused.",
            "id": 496,
            "name": "whenNotPaused",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 488,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1453:2:2"
            },
            "src": "1431:69:2",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 503,
              "nodeType": "Block",
              "src": "1625:43:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 499,
                        "name": "paused",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 483,
                        "src": "1643:6:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 498,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        1937,
                        1938
                      ],
                      "referencedDeclaration": 1937,
                      "src": "1635:7:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 500,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1635:15:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 501,
                  "nodeType": "ExpressionStatement",
                  "src": "1635:15:2"
                },
                {
                  "id": 502,
                  "nodeType": "PlaceholderStatement",
                  "src": "1660:1:2"
                }
              ]
            },
            "documentation": "@dev Modifier to make a function callable only when the contract is paused.",
            "id": 504,
            "name": "whenPaused",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 497,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1622:2:2"
            },
            "src": "1603:65:2",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 518,
              "nodeType": "Block",
              "src": "1836:52:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 513,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 511,
                      "name": "paused",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 483,
                      "src": "1846:6:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 512,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1855:4:2",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "1846:13:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 514,
                  "nodeType": "ExpressionStatement",
                  "src": "1846:13:2"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 515,
                      "name": "Pause",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 485,
                      "src": "1874:5:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 516,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1874:7:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 517,
                  "nodeType": "EmitStatement",
                  "src": "1869:12:2"
                }
              ]
            },
            "documentation": "@dev called by any MSW owner to pause, triggers stopped state",
            "id": 519,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 507,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 506,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 461,
                  "src": "1783:9:2",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1783:9:2"
              },
              {
                "arguments": null,
                "id": 509,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 508,
                  "name": "whenNotPaused",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 496,
                  "src": "1801:13:2",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1801:13:2"
              }
            ],
            "name": "pause",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 505,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1771:2:2"
            },
            "returnParameters": {
              "id": 510,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1836:0:2"
            },
            "scope": 535,
            "src": "1757:131:2",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 533,
              "nodeType": "Block",
              "src": "2064:55:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 528,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 526,
                      "name": "paused",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 483,
                      "src": "2074:6:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 527,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2083:5:2",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "src": "2074:14:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 529,
                  "nodeType": "ExpressionStatement",
                  "src": "2074:14:2"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 530,
                      "name": "Unpause",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 487,
                      "src": "2103:7:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 531,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2103:9:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 532,
                  "nodeType": "EmitStatement",
                  "src": "2098:14:2"
                }
              ]
            },
            "documentation": "@dev called by the MSW (all owners) to unpause, returns to normal state",
            "id": 534,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 522,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 521,
                  "name": "onlyWallet",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 450,
                  "src": "2015:10:2",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2015:10:2"
              },
              {
                "arguments": null,
                "id": 524,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 523,
                  "name": "whenPaused",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 504,
                  "src": "2034:10:2",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2034:10:2"
              }
            ],
            "name": "unpause",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 520,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2003:2:2"
            },
            "returnParameters": {
              "id": 525,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2064:0:2"
            },
            "scope": 535,
            "src": "1987:132:2",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 536,
        "src": "243:1878:2"
      }
    ],
    "src": "0:2122:2"
  },
  "legacyAST": {
    "absolutePath": "/C/MD/Dev/Soltsice/contracts/MultiOwnable.sol",
    "exportedSymbols": {
      "MultiOwnable": [
        535
      ],
      "WalletBasic": [
        410
      ]
    },
    "id": 536,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 402,
        "literals": [
          "solidity",
          "^",
          "0.5",
          ".2"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:2"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": false,
        "id": 410,
        "linearizedBaseContracts": [
          410
        ],
        "name": "WalletBasic",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "body": null,
            "documentation": null,
            "id": 409,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "isOwner",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 405,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 404,
                  "name": "owner",
                  "nodeType": "VariableDeclaration",
                  "scope": 409,
                  "src": "158:13:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 403,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "158:7:2",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "157:15:2"
            },
            "returnParameters": {
              "id": 408,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 407,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 409,
                  "src": "194:4:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 406,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "194:4:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "193:6:2"
            },
            "scope": 410,
            "src": "141:59:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 536,
        "src": "114:88:2"
      },
      {
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": "@dev MultiOwnable contract.",
        "fullyImplemented": true,
        "id": 535,
        "linearizedBaseContracts": [
          535
        ],
        "name": "MultiOwnable",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 412,
            "name": "wallet",
            "nodeType": "VariableDeclaration",
            "scope": 535,
            "src": "276:25:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_WalletBasic_$410",
              "typeString": "contract WalletBasic"
            },
            "typeName": {
              "contractScope": null,
              "id": 411,
              "name": "WalletBasic",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 410,
              "src": "276:11:2",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_WalletBasic_$410",
                "typeString": "contract WalletBasic"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 418,
            "name": "MultiOwnableWalletSet",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 417,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 414,
                  "indexed": true,
                  "name": "_contract",
                  "nodeType": "VariableDeclaration",
                  "scope": 418,
                  "src": "340:25:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 413,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "340:7:2",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 416,
                  "indexed": true,
                  "name": "_wallet",
                  "nodeType": "VariableDeclaration",
                  "scope": 418,
                  "src": "367:23:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 415,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "367:7:2",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "339:52:2"
            },
            "src": "312:80:2"
          },
          {
            "body": {
              "id": 436,
              "nodeType": "Block",
              "src": "455:106:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 427,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 423,
                      "name": "wallet",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 412,
                      "src": "465:6:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_WalletBasic_$410",
                        "typeString": "contract WalletBasic"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 425,
                          "name": "_wallet",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 420,
                          "src": "486:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 424,
                        "name": "WalletBasic",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 410,
                        "src": "474:11:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_WalletBasic_$410_$",
                          "typeString": "type(contract WalletBasic)"
                        }
                      },
                      "id": 426,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "474:20:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_WalletBasic_$410",
                        "typeString": "contract WalletBasic"
                      }
                    },
                    "src": "465:29:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_WalletBasic_$410",
                      "typeString": "contract WalletBasic"
                    }
                  },
                  "id": 428,
                  "nodeType": "ExpressionStatement",
                  "src": "465:29:2"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 431,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1949,
                            "src": "539:4:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_MultiOwnable_$535",
                              "typeString": "contract MultiOwnable"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_MultiOwnable_$535",
                              "typeString": "contract MultiOwnable"
                            }
                          ],
                          "id": 430,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "531:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 432,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "531:13:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "id": 433,
                        "name": "_wallet",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 420,
                        "src": "546:7:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "id": 429,
                      "name": "MultiOwnableWalletSet",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 418,
                      "src": "509:21:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$_t_address_$returns$__$",
                        "typeString": "function (address,address)"
                      }
                    },
                    "id": 434,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "509:45:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 435,
                  "nodeType": "EmitStatement",
                  "src": "504:50:2"
                }
              ]
            },
            "documentation": null,
            "id": 437,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 421,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 420,
                  "name": "_wallet",
                  "nodeType": "VariableDeclaration",
                  "scope": 437,
                  "src": "419:15:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 419,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "419:7:2",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "418:17:2"
            },
            "returnParameters": {
              "id": 422,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "455:0:2"
            },
            "scope": 535,
            "src": "398:163:2",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 449,
              "nodeType": "Block",
              "src": "642:66:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 445,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 441,
                              "name": "wallet",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 412,
                              "src": "668:6:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_WalletBasic_$410",
                                "typeString": "contract WalletBasic"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_contract$_WalletBasic_$410",
                                "typeString": "contract WalletBasic"
                              }
                            ],
                            "id": 440,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "660:7:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": "address"
                          },
                          "id": 442,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "660:15:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "expression": {
                            "argumentTypes": null,
                            "id": 443,
                            "name": "msg",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 1934,
                            "src": "679:3:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_magic_message",
                              "typeString": "msg"
                            }
                          },
                          "id": 444,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "sender",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": null,
                          "src": "679:10:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address_payable",
                            "typeString": "address payable"
                          }
                        },
                        "src": "660:29:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 439,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        1937,
                        1938
                      ],
                      "referencedDeclaration": 1937,
                      "src": "652:7:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 446,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "652:38:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 447,
                  "nodeType": "ExpressionStatement",
                  "src": "652:38:2"
                },
                {
                  "id": 448,
                  "nodeType": "PlaceholderStatement",
                  "src": "700:1:2"
                }
              ]
            },
            "documentation": "Check if a caller is the MultiSig wallet. ",
            "id": 450,
            "name": "onlyWallet",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 438,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "639:2:2"
            },
            "src": "620:88:2",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 460,
              "nodeType": "Block",
              "src": "838:57:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "expression": {
                              "argumentTypes": null,
                              "id": 454,
                              "name": "msg",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 1934,
                              "src": "865:3:2",
                              "typeDescriptions": {
                                "typeIdentifier": "t_magic_message",
                                "typeString": "msg"
                              }
                            },
                            "id": 455,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "sender",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": null,
                            "src": "865:10:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          ],
                          "id": 453,
                          "name": "isOwner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 480,
                          "src": "857:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$_t_address_$returns$_t_bool_$",
                            "typeString": "function (address) view returns (bool)"
                          }
                        },
                        "id": 456,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "857:19:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 452,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        1937,
                        1938
                      ],
                      "referencedDeclaration": 1937,
                      "src": "848:7:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 457,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "848:29:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 458,
                  "nodeType": "ExpressionStatement",
                  "src": "848:29:2"
                },
                {
                  "id": 459,
                  "nodeType": "PlaceholderStatement",
                  "src": "887:1:2"
                }
              ]
            },
            "documentation": "Check if a caller is one of the current owners of the MultiSig wallet or the wallet itself. ",
            "id": 461,
            "name": "onlyOwner",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 451,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "835:2:2"
            },
            "src": "817:78:2",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 479,
              "nodeType": "Block",
              "src": "991:201:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "id": 477,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "id": 472,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 469,
                            "name": "wallet",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 412,
                            "src": "1138:6:2",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_WalletBasic_$410",
                              "typeString": "contract WalletBasic"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_WalletBasic_$410",
                              "typeString": "contract WalletBasic"
                            }
                          ],
                          "id": 468,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "1130:7:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 470,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "1130:15:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "id": 471,
                        "name": "_address",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 463,
                        "src": "1149:8:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "src": "1130:27:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "||",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 475,
                          "name": "_address",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 463,
                          "src": "1176:8:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 473,
                          "name": "wallet",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 412,
                          "src": "1161:6:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_WalletBasic_$410",
                            "typeString": "contract WalletBasic"
                          }
                        },
                        "id": 474,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "isOwner",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 409,
                        "src": "1161:14:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$_t_address_$returns$_t_bool_$",
                          "typeString": "function (address) view external returns (bool)"
                        }
                      },
                      "id": 476,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "1161:24:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "1130:55:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 467,
                  "id": 478,
                  "nodeType": "Return",
                  "src": "1123:62:2"
                }
              ]
            },
            "documentation": null,
            "id": 480,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "isOwner",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 464,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 463,
                  "name": "_address",
                  "nodeType": "VariableDeclaration",
                  "scope": 480,
                  "src": "918:16:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 462,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "918:7:2",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "917:18:2"
            },
            "returnParameters": {
              "id": 467,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 466,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 480,
                  "src": "981:4:2",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 465,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "981:4:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "980:6:2"
            },
            "scope": 535,
            "src": "901:291:2",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 483,
            "name": "paused",
            "nodeType": "VariableDeclaration",
            "scope": 535,
            "src": "1256:26:2",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_bool",
              "typeString": "bool"
            },
            "typeName": {
              "id": 481,
              "name": "bool",
              "nodeType": "ElementaryTypeName",
              "src": "1256:4:2",
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "66616c7365",
              "id": 482,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "bool",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1277:5:2",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_bool",
                "typeString": "bool"
              },
              "value": "false"
            },
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 485,
            "name": "Pause",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 484,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1300:2:2"
            },
            "src": "1289:14:2"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 487,
            "name": "Unpause",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 486,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1321:2:2"
            },
            "src": "1308:16:2"
          },
          {
            "body": {
              "id": 495,
              "nodeType": "Block",
              "src": "1456:44:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 491,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "nodeType": "UnaryOperation",
                        "operator": "!",
                        "prefix": true,
                        "src": "1474:7:2",
                        "subExpression": {
                          "argumentTypes": null,
                          "id": 490,
                          "name": "paused",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 483,
                          "src": "1475:6:2",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 489,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        1937,
                        1938
                      ],
                      "referencedDeclaration": 1937,
                      "src": "1466:7:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 492,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1466:16:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 493,
                  "nodeType": "ExpressionStatement",
                  "src": "1466:16:2"
                },
                {
                  "id": 494,
                  "nodeType": "PlaceholderStatement",
                  "src": "1492:1:2"
                }
              ]
            },
            "documentation": "@dev Modifier to make a function callable only when the contract is not paused.",
            "id": 496,
            "name": "whenNotPaused",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 488,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1453:2:2"
            },
            "src": "1431:69:2",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 503,
              "nodeType": "Block",
              "src": "1625:43:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 499,
                        "name": "paused",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 483,
                        "src": "1643:6:2",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 498,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        1937,
                        1938
                      ],
                      "referencedDeclaration": 1937,
                      "src": "1635:7:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$returns$__$",
                        "typeString": "function (bool) pure"
                      }
                    },
                    "id": 500,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1635:15:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 501,
                  "nodeType": "ExpressionStatement",
                  "src": "1635:15:2"
                },
                {
                  "id": 502,
                  "nodeType": "PlaceholderStatement",
                  "src": "1660:1:2"
                }
              ]
            },
            "documentation": "@dev Modifier to make a function callable only when the contract is paused.",
            "id": 504,
            "name": "whenPaused",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 497,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1622:2:2"
            },
            "src": "1603:65:2",
            "visibility": "internal"
          },
          {
            "body": {
              "id": 518,
              "nodeType": "Block",
              "src": "1836:52:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 513,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 511,
                      "name": "paused",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 483,
                      "src": "1846:6:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "74727565",
                      "id": 512,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "1855:4:2",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "true"
                    },
                    "src": "1846:13:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 514,
                  "nodeType": "ExpressionStatement",
                  "src": "1846:13:2"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 515,
                      "name": "Pause",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 485,
                      "src": "1874:5:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 516,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1874:7:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 517,
                  "nodeType": "EmitStatement",
                  "src": "1869:12:2"
                }
              ]
            },
            "documentation": "@dev called by any MSW owner to pause, triggers stopped state",
            "id": 519,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 507,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 506,
                  "name": "onlyOwner",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 461,
                  "src": "1783:9:2",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1783:9:2"
              },
              {
                "arguments": null,
                "id": 509,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 508,
                  "name": "whenNotPaused",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 496,
                  "src": "1801:13:2",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "1801:13:2"
              }
            ],
            "name": "pause",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 505,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1771:2:2"
            },
            "returnParameters": {
              "id": 510,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1836:0:2"
            },
            "scope": 535,
            "src": "1757:131:2",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 533,
              "nodeType": "Block",
              "src": "2064:55:2",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 528,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 526,
                      "name": "paused",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 483,
                      "src": "2074:6:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "hexValue": "66616c7365",
                      "id": 527,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": true,
                      "kind": "bool",
                      "lValueRequested": false,
                      "nodeType": "Literal",
                      "src": "2083:5:2",
                      "subdenomination": null,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "value": "false"
                    },
                    "src": "2074:14:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 529,
                  "nodeType": "ExpressionStatement",
                  "src": "2074:14:2"
                },
                {
                  "eventCall": {
                    "argumentTypes": null,
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 530,
                      "name": "Unpause",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 487,
                      "src": "2103:7:2",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$__$returns$__$",
                        "typeString": "function ()"
                      }
                    },
                    "id": 531,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2103:9:2",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 532,
                  "nodeType": "EmitStatement",
                  "src": "2098:14:2"
                }
              ]
            },
            "documentation": "@dev called by the MSW (all owners) to unpause, returns to normal state",
            "id": 534,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": null,
                "id": 522,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 521,
                  "name": "onlyWallet",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 450,
                  "src": "2015:10:2",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2015:10:2"
              },
              {
                "arguments": null,
                "id": 524,
                "modifierName": {
                  "argumentTypes": null,
                  "id": 523,
                  "name": "whenPaused",
                  "nodeType": "Identifier",
                  "overloadedDeclarations": [],
                  "referencedDeclaration": 504,
                  "src": "2034:10:2",
                  "typeDescriptions": {
                    "typeIdentifier": "t_modifier$__$",
                    "typeString": "modifier ()"
                  }
                },
                "nodeType": "ModifierInvocation",
                "src": "2034:10:2"
              }
            ],
            "name": "unpause",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 520,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2003:2:2"
            },
            "returnParameters": {
              "id": 525,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2064:0:2"
            },
            "scope": 535,
            "src": "1987:132:2",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          }
        ],
        "scope": 536,
        "src": "243:1878:2"
      }
    ],
    "src": "0:2122:2"
  },
  "compiler": {
    "name": "solc",
    "version": "0.5.2+commit.1df8f40c.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.0.6",
  "updatedAt": "2019-03-31T16:08:45.199Z",
  "devdoc": {
    "details": "MultiOwnable contract.",
    "methods": {
      "pause()": {
        "details": "called by any MSW owner to pause, triggers stopped state"
      },
      "unpause()": {
        "details": "called by the MSW (all owners) to unpause, returns to normal state"
      }
    }
  },
  "userdoc": {
    "methods": {}
  }
}