{
  "contractName": "IERC734",
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "executionId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "approved",
          "type": "bool"
        }
      ],
      "name": "Approved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "executionId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "Executed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "executionId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "ExecutionFailed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "executionId",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "to",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "value",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "ExecutionRequested",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "key",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "purpose",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "keyType",
          "type": "uint256"
        }
      ],
      "name": "KeyAdded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "bytes32",
          "name": "key",
          "type": "bytes32"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "purpose",
          "type": "uint256"
        },
        {
          "indexed": true,
          "internalType": "uint256",
          "name": "keyType",
          "type": "uint256"
        }
      ],
      "name": "KeyRemoved",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "ACTION_KEY",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "CLAIM_SIGNER_KEY",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "ECDSA_TYPE",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "ENCRYPTION_KEY",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "MANAGEMENT_KEY",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "RSA_TYPE",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_key",
          "type": "bytes32"
        }
      ],
      "name": "getKey",
      "outputs": [
        {
          "internalType": "uint256[]",
          "name": "purposes",
          "type": "uint256[]"
        },
        {
          "internalType": "uint256",
          "name": "keyType",
          "type": "uint256"
        },
        {
          "internalType": "bytes32",
          "name": "key",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_key",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "purpose",
          "type": "uint256"
        }
      ],
      "name": "keyHasPurpose",
      "outputs": [
        {
          "internalType": "bool",
          "name": "exists",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_purpose",
          "type": "uint256"
        }
      ],
      "name": "getKeysByPurpose",
      "outputs": [
        {
          "internalType": "bytes32[]",
          "name": "keys",
          "type": "bytes32[]"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_key",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "_purpose",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "_keyType",
          "type": "uint256"
        }
      ],
      "name": "addKey",
      "outputs": [
        {
          "internalType": "bool",
          "name": "success",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "_key",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "_purpose",
          "type": "uint256"
        }
      ],
      "name": "removeKey",
      "outputs": [
        {
          "internalType": "bool",
          "name": "success",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "_to",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "_value",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "_data",
          "type": "bytes"
        }
      ],
      "name": "execute",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "executionId",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "_id",
          "type": "uint256"
        },
        {
          "internalType": "bool",
          "name": "_approve",
          "type": "bool"
        }
      ],
      "name": "approve",
      "outputs": [
        {
          "internalType": "bool",
          "name": "success",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "metadata": "{\"compiler\":{\"version\":\"0.6.6+commit.6c089d02\"},\"language\":\"Solidity\",\"output\":{\"abi\":[{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bool\",\"name\":\"approved\",\"type\":\"bool\"}],\"name\":\"Approved\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"Executed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ExecutionFailed\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"address\",\"name\":\"to\",\"type\":\"address\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"value\",\"type\":\"uint256\"},{\"indexed\":false,\"internalType\":\"bytes\",\"name\":\"data\",\"type\":\"bytes\"}],\"name\":\"ExecutionRequested\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"purpose\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"}],\"name\":\"KeyAdded\",\"type\":\"event\"},{\"anonymous\":false,\"inputs\":[{\"indexed\":true,\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"purpose\",\"type\":\"uint256\"},{\"indexed\":true,\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"}],\"name\":\"KeyRemoved\",\"type\":\"event\"},{\"inputs\":[],\"name\":\"ACTION_KEY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"CLAIM_SIGNER_KEY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ECDSA_TYPE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"ENCRYPTION_KEY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"MANAGEMENT_KEY\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[],\"name\":\"RSA_TYPE\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"\",\"type\":\"uint256\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"},{\"internalType\":\"uint256\",\"name\":\"_keyType\",\"type\":\"uint256\"}],\"name\":\"addKey\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_id\",\"type\":\"uint256\"},{\"internalType\":\"bool\",\"name\":\"_approve\",\"type\":\"bool\"}],\"name\":\"approve\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"address\",\"name\":\"_to\",\"type\":\"address\"},{\"internalType\":\"uint256\",\"name\":\"_value\",\"type\":\"uint256\"},{\"internalType\":\"bytes\",\"name\":\"_data\",\"type\":\"bytes\"}],\"name\":\"execute\",\"outputs\":[{\"internalType\":\"uint256\",\"name\":\"executionId\",\"type\":\"uint256\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"}],\"name\":\"getKey\",\"outputs\":[{\"internalType\":\"uint256[]\",\"name\":\"purposes\",\"type\":\"uint256[]\"},{\"internalType\":\"uint256\",\"name\":\"keyType\",\"type\":\"uint256\"},{\"internalType\":\"bytes32\",\"name\":\"key\",\"type\":\"bytes32\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"}],\"name\":\"getKeysByPurpose\",\"outputs\":[{\"internalType\":\"bytes32[]\",\"name\":\"keys\",\"type\":\"bytes32[]\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"purpose\",\"type\":\"uint256\"}],\"name\":\"keyHasPurpose\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"exists\",\"type\":\"bool\"}],\"stateMutability\":\"view\",\"type\":\"function\"},{\"inputs\":[{\"internalType\":\"bytes32\",\"name\":\"_key\",\"type\":\"bytes32\"},{\"internalType\":\"uint256\",\"name\":\"_purpose\",\"type\":\"uint256\"}],\"name\":\"removeKey\",\"outputs\":[{\"internalType\":\"bool\",\"name\":\"success\",\"type\":\"bool\"}],\"stateMutability\":\"nonpayable\",\"type\":\"function\"}],\"devdoc\":{\"methods\":{}},\"userdoc\":{\"methods\":{}}},\"settings\":{\"compilationTarget\":{\"@iexec/solidity/contracts/ERC734/IERC734.sol\":\"IERC734\"},\"evmVersion\":\"istanbul\",\"libraries\":{},\"metadata\":{\"bytecodeHash\":\"ipfs\"},\"optimizer\":{\"enabled\":true,\"runs\":200},\"remappings\":[]},\"sources\":{\"@iexec/solidity/contracts/ERC734/IERC734.sol\":{\"keccak256\":\"0x8c90e6571af80f3ccb1e04469cef3a5ac6d7ee02f61c8643bdceb5b8a141da62\",\"urls\":[\"bzz-raw://2402fc97239c6fd515910d4a6c367cabd24abcdc1c54c3090e64cdbaa9deb948\",\"dweb:/ipfs/Qma7jLg9bqkT8QeftRHgftGMZvSjqmsSoQZmWLhnwc2shy\"]}},\"version\":1}",
  "bytecode": "0x",
  "deployedBytecode": "0x",
  "immutableReferences": {},
  "sourceMap": "",
  "deployedSourceMap": "",
  "source": "pragma solidity ^0.6.0;\n\nabstract contract IERC734\n{\n\t// 1: MANAGEMENT keys, which can manage the identity\n\tuint256 public constant MANAGEMENT_KEY = 1;\n\t// 2: ACTION keys, which perform actions in this identities name (signing, logins, transactions, etc.)\n\tuint256 public constant ACTION_KEY = 2;\n\t// 3: CLAIM signer keys, used to sign claims on other identities which need to be revokable.\n\tuint256 public constant CLAIM_SIGNER_KEY = 3;\n\t// 4: ENCRYPTION keys, used to encrypt data e.g. hold in claims.\n\tuint256 public constant ENCRYPTION_KEY = 4;\n\n\t// KeyType\n\tuint256 public constant ECDSA_TYPE = 1;\n\t// https://medium.com/@alexberegszaszi/lets-bring-the-70s-to-ethereum-48daa16a4b51\n\tuint256 public constant RSA_TYPE = 2;\n\n\t// Events\n\tevent KeyAdded          (bytes32 indexed key, uint256 indexed purpose, uint256 indexed keyType);\n\tevent KeyRemoved        (bytes32 indexed key, uint256 indexed purpose, uint256 indexed keyType);\n\tevent ExecutionRequested(uint256 indexed executionId, address indexed to, uint256 indexed value, bytes data);\n\tevent Executed          (uint256 indexed executionId, address indexed to, uint256 indexed value, bytes data);\n\tevent ExecutionFailed   (uint256 indexed executionId, address indexed to, uint256 indexed value, bytes data);\n\tevent Approved          (uint256 indexed executionId, bool approved);\n\n\t// Functions\n\tfunction getKey          (bytes32 _key                                     ) external virtual view returns (uint256[] memory purposes, uint256 keyType, bytes32 key);\n\tfunction keyHasPurpose   (bytes32 _key, uint256 purpose                    ) external virtual view returns (bool exists);\n\tfunction getKeysByPurpose(uint256 _purpose                                 ) external virtual view returns (bytes32[] memory keys);\n\tfunction addKey          (bytes32 _key, uint256 _purpose, uint256 _keyType ) external virtual      returns (bool success);\n\tfunction removeKey       (bytes32 _key, uint256 _purpose                   ) external virtual      returns (bool success);\n\tfunction execute         (address _to, uint256 _value, bytes calldata _data) external virtual      returns (uint256 executionId);\n\tfunction approve         (uint256 _id, bool _approve                       ) external virtual      returns (bool success);\n}\n",
  "sourcePath": "@iexec/solidity/contracts/ERC734/IERC734.sol",
  "ast": {
    "absolutePath": "@iexec/solidity/contracts/ERC734/IERC734.sol",
    "exportedSymbols": {
      "IERC734": [
        10336
      ]
    },
    "id": 10337,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 10196,
        "literals": [
          "solidity",
          "^",
          "0.6",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:60"
      },
      {
        "abstract": true,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": false,
        "id": 10336,
        "linearizedBaseContracts": [
          10336
        ],
        "name": "IERC734",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "functionSelector": "058b316c",
            "id": 10199,
            "mutability": "constant",
            "name": "MANAGEMENT_KEY",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 10336,
            "src": "108:42:60",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 10197,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "108:7:60",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "31",
              "id": 10198,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "149:1:60",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_1_by_1",
                "typeString": "int_const 1"
              },
              "value": "1"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "75e5598c",
            "id": 10202,
            "mutability": "constant",
            "name": "ACTION_KEY",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 10336,
            "src": "257:38:60",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 10200,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "257:7:60",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "32",
              "id": 10201,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "294:1:60",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_2_by_1",
                "typeString": "int_const 2"
              },
              "value": "2"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "c6702187",
            "id": 10205,
            "mutability": "constant",
            "name": "CLAIM_SIGNER_KEY",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 10336,
            "src": "392:44:60",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 10203,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "392:7:60",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "33",
              "id": 10204,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "435:1:60",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_3_by_1",
                "typeString": "int_const 3"
              },
              "value": "3"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "9e140cc8",
            "id": 10208,
            "mutability": "constant",
            "name": "ENCRYPTION_KEY",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 10336,
            "src": "505:42:60",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 10206,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "505:7:60",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "34",
              "id": 10207,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "546:1:60",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_4_by_1",
                "typeString": "int_const 4"
              },
              "value": "4"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "49991ec8",
            "id": 10211,
            "mutability": "constant",
            "name": "ECDSA_TYPE",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 10336,
            "src": "563:38:60",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 10209,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "563:7:60",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "31",
              "id": 10210,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "600:1:60",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_1_by_1",
                "typeString": "int_const 1"
              },
              "value": "1"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "2d32d442",
            "id": 10214,
            "mutability": "constant",
            "name": "RSA_TYPE",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 10336,
            "src": "688:36:60",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 10212,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "688:7:60",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "32",
              "id": 10213,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "723:1:60",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_2_by_1",
                "typeString": "int_const 2"
              },
              "value": "2"
            },
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 10222,
            "name": "KeyAdded",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 10221,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10216,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10222,
                  "src": "764:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 10215,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "764:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10218,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "purpose",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10222,
                  "src": "785:23:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10217,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "785:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10220,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "keyType",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10222,
                  "src": "810:23:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10219,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "810:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "763:71:60"
            },
            "src": "739:96:60"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 10230,
            "name": "KeyRemoved",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 10229,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10224,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10230,
                  "src": "862:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 10223,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "862:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10226,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "purpose",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10230,
                  "src": "883:23:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10225,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "883:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10228,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "keyType",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10230,
                  "src": "908:23:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10227,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "908:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "861:71:60"
            },
            "src": "837:96:60"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 10240,
            "name": "ExecutionRequested",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 10239,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10232,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "executionId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10240,
                  "src": "960:27:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10231,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "960:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10234,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10240,
                  "src": "989:18:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10233,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "989:7:60",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10236,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10240,
                  "src": "1009:21:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10235,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1009:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10238,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "data",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10240,
                  "src": "1032:10:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 10237,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1032:5:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "959:84:60"
            },
            "src": "935:109:60"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 10250,
            "name": "Executed",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 10249,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10242,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "executionId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10250,
                  "src": "1071:27:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10241,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1071:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10244,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10250,
                  "src": "1100:18:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10243,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1100:7:60",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10246,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10250,
                  "src": "1120:21:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10245,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1120:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10248,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "data",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10250,
                  "src": "1143:10:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 10247,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1143:5:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1070:84:60"
            },
            "src": "1046:109:60"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 10260,
            "name": "ExecutionFailed",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 10259,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10252,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "executionId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10260,
                  "src": "1182:27:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10251,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1182:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10254,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10260,
                  "src": "1211:18:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10253,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1211:7:60",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10256,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10260,
                  "src": "1231:21:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10255,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1231:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10258,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "data",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10260,
                  "src": "1254:10:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 10257,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1254:5:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1181:84:60"
            },
            "src": "1157:109:60"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 10266,
            "name": "Approved",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 10265,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10262,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "executionId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10266,
                  "src": "1293:27:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10261,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1293:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10264,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "approved",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10266,
                  "src": "1322:13:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 10263,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1322:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1292:44:60"
            },
            "src": "1268:69:60"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "12aaac70",
            "id": 10278,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getKey",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 10269,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10268,
                  "mutability": "mutable",
                  "name": "_key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10278,
                  "src": "1380:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 10267,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1380:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1379:51:60"
            },
            "returnParameters": {
              "id": 10277,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10272,
                  "mutability": "mutable",
                  "name": "purposes",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10278,
                  "src": "1462:25:60",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 10270,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "1462:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 10271,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "1462:9:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10274,
                  "mutability": "mutable",
                  "name": "keyType",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10278,
                  "src": "1489:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10273,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1489:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10276,
                  "mutability": "mutable",
                  "name": "key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10278,
                  "src": "1506:11:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 10275,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1506:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1461:57:60"
            },
            "scope": 10336,
            "src": "1354:165:60",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "d202158d",
            "id": 10287,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "keyHasPurpose",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 10283,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10280,
                  "mutability": "mutable",
                  "name": "_key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10287,
                  "src": "1547:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 10279,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1547:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10282,
                  "mutability": "mutable",
                  "name": "purpose",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10287,
                  "src": "1561:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10281,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1561:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1546:51:60"
            },
            "returnParameters": {
              "id": 10286,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10285,
                  "mutability": "mutable",
                  "name": "exists",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10287,
                  "src": "1629:11:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 10284,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1629:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1628:13:60"
            },
            "scope": 10336,
            "src": "1521:121:60",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "9010f726",
            "id": 10295,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getKeysByPurpose",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 10290,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10289,
                  "mutability": "mutable",
                  "name": "_purpose",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10295,
                  "src": "1670:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10288,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1670:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1669:51:60"
            },
            "returnParameters": {
              "id": 10294,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10293,
                  "mutability": "mutable",
                  "name": "keys",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10295,
                  "src": "1752:21:60",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 10291,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "1752:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 10292,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "1752:9:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1751:23:60"
            },
            "scope": 10336,
            "src": "1644:131:60",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "1d381240",
            "id": 10306,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "addKey",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 10302,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10297,
                  "mutability": "mutable",
                  "name": "_key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10306,
                  "src": "1803:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 10296,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1803:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10299,
                  "mutability": "mutable",
                  "name": "_purpose",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10306,
                  "src": "1817:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10298,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1817:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10301,
                  "mutability": "mutable",
                  "name": "_keyType",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10306,
                  "src": "1835:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10300,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1835:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1802:51:60"
            },
            "returnParameters": {
              "id": 10305,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10304,
                  "mutability": "mutable",
                  "name": "success",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10306,
                  "src": "1885:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 10303,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1885:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1884:14:60"
            },
            "scope": 10336,
            "src": "1777:122:60",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "53d413c5",
            "id": 10315,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "removeKey",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 10311,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10308,
                  "mutability": "mutable",
                  "name": "_key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10315,
                  "src": "1927:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 10307,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1927:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10310,
                  "mutability": "mutable",
                  "name": "_purpose",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10315,
                  "src": "1941:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10309,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1941:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1926:51:60"
            },
            "returnParameters": {
              "id": 10314,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10313,
                  "mutability": "mutable",
                  "name": "success",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10315,
                  "src": "2009:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 10312,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2009:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2008:14:60"
            },
            "scope": 10336,
            "src": "1901:122:60",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "b61d27f6",
            "id": 10326,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "execute",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 10322,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10317,
                  "mutability": "mutable",
                  "name": "_to",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10326,
                  "src": "2051:11:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10316,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2051:7:60",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10319,
                  "mutability": "mutable",
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10326,
                  "src": "2064:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10318,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2064:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10321,
                  "mutability": "mutable",
                  "name": "_data",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10326,
                  "src": "2080:20:60",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 10320,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2080:5:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2050:51:60"
            },
            "returnParameters": {
              "id": 10325,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10324,
                  "mutability": "mutable",
                  "name": "executionId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10326,
                  "src": "2133:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10323,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2133:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2132:21:60"
            },
            "scope": 10336,
            "src": "2025:129:60",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "747442d3",
            "id": 10335,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "approve",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 10331,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10328,
                  "mutability": "mutable",
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10335,
                  "src": "2182:11:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10327,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2182:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10330,
                  "mutability": "mutable",
                  "name": "_approve",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10335,
                  "src": "2195:13:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 10329,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2195:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2181:51:60"
            },
            "returnParameters": {
              "id": 10334,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10333,
                  "mutability": "mutable",
                  "name": "success",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10335,
                  "src": "2264:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 10332,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2264:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2263:14:60"
            },
            "scope": 10336,
            "src": "2156:122:60",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          }
        ],
        "scope": 10337,
        "src": "25:2255:60"
      }
    ],
    "src": "0:2281:60"
  },
  "legacyAST": {
    "absolutePath": "@iexec/solidity/contracts/ERC734/IERC734.sol",
    "exportedSymbols": {
      "IERC734": [
        10336
      ]
    },
    "id": 10337,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 10196,
        "literals": [
          "solidity",
          "^",
          "0.6",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:60"
      },
      {
        "abstract": true,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": false,
        "id": 10336,
        "linearizedBaseContracts": [
          10336
        ],
        "name": "IERC734",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "functionSelector": "058b316c",
            "id": 10199,
            "mutability": "constant",
            "name": "MANAGEMENT_KEY",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 10336,
            "src": "108:42:60",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 10197,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "108:7:60",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "31",
              "id": 10198,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "149:1:60",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_1_by_1",
                "typeString": "int_const 1"
              },
              "value": "1"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "75e5598c",
            "id": 10202,
            "mutability": "constant",
            "name": "ACTION_KEY",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 10336,
            "src": "257:38:60",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 10200,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "257:7:60",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "32",
              "id": 10201,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "294:1:60",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_2_by_1",
                "typeString": "int_const 2"
              },
              "value": "2"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "c6702187",
            "id": 10205,
            "mutability": "constant",
            "name": "CLAIM_SIGNER_KEY",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 10336,
            "src": "392:44:60",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 10203,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "392:7:60",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "33",
              "id": 10204,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "435:1:60",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_3_by_1",
                "typeString": "int_const 3"
              },
              "value": "3"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "9e140cc8",
            "id": 10208,
            "mutability": "constant",
            "name": "ENCRYPTION_KEY",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 10336,
            "src": "505:42:60",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 10206,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "505:7:60",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "34",
              "id": 10207,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "546:1:60",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_4_by_1",
                "typeString": "int_const 4"
              },
              "value": "4"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "49991ec8",
            "id": 10211,
            "mutability": "constant",
            "name": "ECDSA_TYPE",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 10336,
            "src": "563:38:60",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 10209,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "563:7:60",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "31",
              "id": 10210,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "600:1:60",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_1_by_1",
                "typeString": "int_const 1"
              },
              "value": "1"
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "2d32d442",
            "id": 10214,
            "mutability": "constant",
            "name": "RSA_TYPE",
            "nodeType": "VariableDeclaration",
            "overrides": null,
            "scope": 10336,
            "src": "688:36:60",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 10212,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "688:7:60",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "32",
              "id": 10213,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "number",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "723:1:60",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_rational_2_by_1",
                "typeString": "int_const 2"
              },
              "value": "2"
            },
            "visibility": "public"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 10222,
            "name": "KeyAdded",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 10221,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10216,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10222,
                  "src": "764:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 10215,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "764:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10218,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "purpose",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10222,
                  "src": "785:23:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10217,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "785:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10220,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "keyType",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10222,
                  "src": "810:23:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10219,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "810:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "763:71:60"
            },
            "src": "739:96:60"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 10230,
            "name": "KeyRemoved",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 10229,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10224,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10230,
                  "src": "862:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 10223,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "862:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10226,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "purpose",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10230,
                  "src": "883:23:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10225,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "883:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10228,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "keyType",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10230,
                  "src": "908:23:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10227,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "908:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "861:71:60"
            },
            "src": "837:96:60"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 10240,
            "name": "ExecutionRequested",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 10239,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10232,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "executionId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10240,
                  "src": "960:27:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10231,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "960:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10234,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10240,
                  "src": "989:18:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10233,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "989:7:60",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10236,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10240,
                  "src": "1009:21:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10235,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1009:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10238,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "data",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10240,
                  "src": "1032:10:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 10237,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1032:5:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "959:84:60"
            },
            "src": "935:109:60"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 10250,
            "name": "Executed",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 10249,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10242,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "executionId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10250,
                  "src": "1071:27:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10241,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1071:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10244,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10250,
                  "src": "1100:18:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10243,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1100:7:60",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10246,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10250,
                  "src": "1120:21:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10245,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1120:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10248,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "data",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10250,
                  "src": "1143:10:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 10247,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1143:5:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1070:84:60"
            },
            "src": "1046:109:60"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 10260,
            "name": "ExecutionFailed",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 10259,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10252,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "executionId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10260,
                  "src": "1182:27:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10251,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1182:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10254,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "to",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10260,
                  "src": "1211:18:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10253,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1211:7:60",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10256,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "value",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10260,
                  "src": "1231:21:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10255,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1231:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10258,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "data",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10260,
                  "src": "1254:10:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 10257,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "1254:5:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1181:84:60"
            },
            "src": "1157:109:60"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 10266,
            "name": "Approved",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 10265,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10262,
                  "indexed": true,
                  "mutability": "mutable",
                  "name": "executionId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10266,
                  "src": "1293:27:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10261,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1293:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10264,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "approved",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10266,
                  "src": "1322:13:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 10263,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1322:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1292:44:60"
            },
            "src": "1268:69:60"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "12aaac70",
            "id": 10278,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getKey",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 10269,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10268,
                  "mutability": "mutable",
                  "name": "_key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10278,
                  "src": "1380:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 10267,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1380:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1379:51:60"
            },
            "returnParameters": {
              "id": 10277,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10272,
                  "mutability": "mutable",
                  "name": "purposes",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10278,
                  "src": "1462:25:60",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_uint256_$dyn_memory_ptr",
                    "typeString": "uint256[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 10270,
                      "name": "uint256",
                      "nodeType": "ElementaryTypeName",
                      "src": "1462:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "id": 10271,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "1462:9:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                      "typeString": "uint256[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10274,
                  "mutability": "mutable",
                  "name": "keyType",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10278,
                  "src": "1489:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10273,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1489:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10276,
                  "mutability": "mutable",
                  "name": "key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10278,
                  "src": "1506:11:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 10275,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1506:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1461:57:60"
            },
            "scope": 10336,
            "src": "1354:165:60",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "d202158d",
            "id": 10287,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "keyHasPurpose",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 10283,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10280,
                  "mutability": "mutable",
                  "name": "_key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10287,
                  "src": "1547:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 10279,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1547:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10282,
                  "mutability": "mutable",
                  "name": "purpose",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10287,
                  "src": "1561:15:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10281,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1561:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1546:51:60"
            },
            "returnParameters": {
              "id": 10286,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10285,
                  "mutability": "mutable",
                  "name": "exists",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10287,
                  "src": "1629:11:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 10284,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1629:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1628:13:60"
            },
            "scope": 10336,
            "src": "1521:121:60",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "9010f726",
            "id": 10295,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "getKeysByPurpose",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 10290,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10289,
                  "mutability": "mutable",
                  "name": "_purpose",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10295,
                  "src": "1670:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10288,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1670:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1669:51:60"
            },
            "returnParameters": {
              "id": 10294,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10293,
                  "mutability": "mutable",
                  "name": "keys",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10295,
                  "src": "1752:21:60",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_array$_t_bytes32_$dyn_memory_ptr",
                    "typeString": "bytes32[]"
                  },
                  "typeName": {
                    "baseType": {
                      "id": 10291,
                      "name": "bytes32",
                      "nodeType": "ElementaryTypeName",
                      "src": "1752:7:60",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "id": 10292,
                    "length": null,
                    "nodeType": "ArrayTypeName",
                    "src": "1752:9:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_array$_t_bytes32_$dyn_storage_ptr",
                      "typeString": "bytes32[]"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1751:23:60"
            },
            "scope": 10336,
            "src": "1644:131:60",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "1d381240",
            "id": 10306,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "addKey",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 10302,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10297,
                  "mutability": "mutable",
                  "name": "_key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10306,
                  "src": "1803:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 10296,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1803:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10299,
                  "mutability": "mutable",
                  "name": "_purpose",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10306,
                  "src": "1817:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10298,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1817:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10301,
                  "mutability": "mutable",
                  "name": "_keyType",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10306,
                  "src": "1835:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10300,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1835:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1802:51:60"
            },
            "returnParameters": {
              "id": 10305,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10304,
                  "mutability": "mutable",
                  "name": "success",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10306,
                  "src": "1885:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 10303,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "1885:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1884:14:60"
            },
            "scope": 10336,
            "src": "1777:122:60",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "53d413c5",
            "id": 10315,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "removeKey",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 10311,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10308,
                  "mutability": "mutable",
                  "name": "_key",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10315,
                  "src": "1927:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 10307,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1927:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10310,
                  "mutability": "mutable",
                  "name": "_purpose",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10315,
                  "src": "1941:16:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10309,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1941:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1926:51:60"
            },
            "returnParameters": {
              "id": 10314,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10313,
                  "mutability": "mutable",
                  "name": "success",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10315,
                  "src": "2009:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 10312,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2009:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2008:14:60"
            },
            "scope": 10336,
            "src": "1901:122:60",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "b61d27f6",
            "id": 10326,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "execute",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 10322,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10317,
                  "mutability": "mutable",
                  "name": "_to",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10326,
                  "src": "2051:11:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 10316,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2051:7:60",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10319,
                  "mutability": "mutable",
                  "name": "_value",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10326,
                  "src": "2064:14:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10318,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2064:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10321,
                  "mutability": "mutable",
                  "name": "_data",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10326,
                  "src": "2080:20:60",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 10320,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2080:5:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2050:51:60"
            },
            "returnParameters": {
              "id": 10325,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10324,
                  "mutability": "mutable",
                  "name": "executionId",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10326,
                  "src": "2133:19:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10323,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2133:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2132:21:60"
            },
            "scope": 10336,
            "src": "2025:129:60",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          },
          {
            "body": null,
            "documentation": null,
            "functionSelector": "747442d3",
            "id": 10335,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "approve",
            "nodeType": "FunctionDefinition",
            "overrides": null,
            "parameters": {
              "id": 10331,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10328,
                  "mutability": "mutable",
                  "name": "_id",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10335,
                  "src": "2182:11:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 10327,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2182:7:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 10330,
                  "mutability": "mutable",
                  "name": "_approve",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10335,
                  "src": "2195:13:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 10329,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2195:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2181:51:60"
            },
            "returnParameters": {
              "id": 10334,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 10333,
                  "mutability": "mutable",
                  "name": "success",
                  "nodeType": "VariableDeclaration",
                  "overrides": null,
                  "scope": 10335,
                  "src": "2264:12:60",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 10332,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "2264:4:60",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2263:14:60"
            },
            "scope": 10336,
            "src": "2156:122:60",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "external"
          }
        ],
        "scope": 10337,
        "src": "25:2255:60"
      }
    ],
    "src": "0:2281:60"
  },
  "compiler": {
    "name": "solc",
    "version": "0.6.6+commit.6c089d02.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "3.1.0",
  "updatedAt": "2020-04-21T18:10:34.960Z",
  "devdoc": {
    "methods": {}
  },
  "userdoc": {
    "methods": {}
  }
}