{
  "contractName": "UserEvents",
  "abi": [
    {
      "constant": true,
      "inputs": [],
      "name": "userContract",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "constant": true,
      "inputs": [],
      "name": "signaturit",
      "outputs": [
        {
          "name": "",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "name": "signaturitUser",
          "type": "address"
        }
      ],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "constructor"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "",
          "type": "address"
        }
      ],
      "name": "SignatureCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "",
          "type": "address"
        }
      ],
      "name": "DocumentCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "",
          "type": "address"
        }
      ],
      "name": "FileCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "",
          "type": "address"
        }
      ],
      "name": "EventCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "",
          "type": "address"
        }
      ],
      "name": "CertifiedFileCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "",
          "type": "address"
        }
      ],
      "name": "CertifiedEmailCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "",
          "type": "address"
        }
      ],
      "name": "CertificateCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "",
          "type": "address"
        }
      ],
      "name": "TimeLogAdded",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "name": "",
          "type": "address"
        }
      ],
      "name": "PaymentCheckAdded",
      "type": "event"
    },
    {
      "constant": false,
      "inputs": [
        {
          "name": "eventType",
          "type": "string"
        },
        {
          "name": "addr",
          "type": "address"
        }
      ],
      "name": "notify",
      "outputs": [],
      "payable": false,
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "bytecode": "0x60806040523480156200001157600080fd5b5060405160208062001444833981018060405260208110156200003357600080fd5b505160008054600160a060020a03199081163317825560018054600160a060020a03808616919093161790819055604080518082018252600b81527f757365725f6576656e74730000000000000000000000000000000000000000006020820190815282517f34311d8e00000000000000000000000000000000000000000000000000000000815230602482018190526004820194855283516044830152835195909616966334311d8e9693959394938493606490930192918190849084905b838110156200010d578181015183820152602001620000f3565b50505050905090810190601f1680156200013b5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156200015c57600080fd5b505af115801562000171573d6000803e3d6000fd5b5050600154604080518082018252600e81527f66696c652d6e6f746966696572730000000000000000000000000000000000006020820190815282517fd661f878000000000000000000000000000000000000000000000000000000008152306024820181905260048201948552835160448301528351600160a060020a03909616975063d661f8789650929492939283926064909201919080838360005b838110156200022a57818101518382015260200162000210565b50505050905090810190601f168015620002585780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156200027957600080fd5b505af11580156200028e573d6000803e3d6000fd5b5050600154604080518082018252600f81527f6576656e742d6e6f7469666965727300000000000000000000000000000000006020820190815282517fd661f878000000000000000000000000000000000000000000000000000000008152306024820181905260048201948552835160448301528351600160a060020a03909616975063d661f8789650929492939283926064909201919080838360005b83811015620003475781810151838201526020016200032d565b50505050905090810190601f168015620003755780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156200039657600080fd5b505af1158015620003ab573d6000803e3d6000fd5b5050600154604080518082018252601281527f646f63756d656e742d6e6f7469666965727300000000000000000000000000006020820190815282517fd661f878000000000000000000000000000000000000000000000000000000008152306024820181905260048201948552835160448301528351600160a060020a03909616975063d661f8789650929492939283926064909201919080838360005b83811015620004645781810151838201526020016200044a565b50505050905090810190601f168015620004925780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015620004b357600080fd5b505af1158015620004c8573d6000803e3d6000fd5b5050600154604080518082018252601381527f7369676e61747572652d6e6f74696669657273000000000000000000000000006020820190815282517fd661f878000000000000000000000000000000000000000000000000000000008152306024820181905260048201948552835160448301528351600160a060020a03909616975063d661f8789650929492939283926064909201919080838360005b838110156200058157818101518382015260200162000567565b50505050905090810190601f168015620005af5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015620005d057600080fd5b505af1158015620005e5573d6000803e3d6000fd5b5050600154604080518082018252601b81527f74696d656c6f676765722d636c617573652d6e6f7469666965727300000000006020820190815282517fd661f878000000000000000000000000000000000000000000000000000000008152306024820181905260048201948552835160448301528351600160a060020a03909616975063d661f8789650929492939283926064909201919080838360005b838110156200069e57818101518382015260200162000684565b50505050905090810190601f168015620006cc5780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b158015620006ed57600080fd5b505af115801562000702573d6000803e3d6000fd5b5050600154604080518082018252601581527f63657274696669636174652d6e6f7469666965727300000000000000000000006020820190815282517fd661f878000000000000000000000000000000000000000000000000000000008152306024820181905260048201948552835160448301528351600160a060020a03909616975063d661f8789650929492939283926064909201919080838360005b83811015620007bb578181015183820152602001620007a1565b50505050905090810190601f168015620007e95780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156200080a57600080fd5b505af11580156200081f573d6000803e3d6000fd5b5050600154604080518082018252601881527f6365727469666965642d66696c652d6e6f7469666965727300000000000000006020820190815282517fd661f878000000000000000000000000000000000000000000000000000000008152306024820181905260048201948552835160448301528351600160a060020a03909616975063d661f8789650929492939283926064909201919080838360005b83811015620008d8578181015183820152602001620008be565b50505050905090810190601f168015620009065780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b1580156200092757600080fd5b505af11580156200093c573d6000803e3d6000fd5b5050600154604080518082018252601881527f7061796d656e742d636c617573652d6e6f7469666965727300000000000000006020820190815282517fd661f878000000000000000000000000000000000000000000000000000000008152306024820181905260048201948552835160448301528351600160a060020a03909616975063d661f8789650929492939283926064909201919080838360005b83811015620009f5578181015183820152602001620009db565b50505050905090810190601f16801562000a235780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801562000a4457600080fd5b505af115801562000a59573d6000803e3d6000fd5b5050600154604080518082018252601981527f6365727469666965642d656d61696c2d6e6f74696669657273000000000000006020820190815282517fd661f878000000000000000000000000000000000000000000000000000000008152306024820181905260048201948552835160448301528351600160a060020a03909616975063d661f8789650929492939283926064909201919080838360005b8381101562000b1257818101518382015260200162000af8565b50505050905090810190601f16801562000b405780820380516001836020036101000a031916815260200191505b509350505050600060405180830381600087803b15801562000b6157600080fd5b505af115801562000b76573d6000803e3d6000fd5b50505050506108b98062000b8b6000396000f3fe60806040526004361061003d5763ffffffff60e060020a6000350416635000596b8114610042578063e71e657614610073578063f9b5333514610133575b600080fd5b34801561004e57600080fd5b50610057610148565b60408051600160a060020a039092168252519081900360200190f35b34801561007f57600080fd5b506101316004803603604081101561009657600080fd5b8101906020810181356401000000008111156100b157600080fd5b8201836020820111156100c357600080fd5b803590602001918460018302840111640100000000831117156100e557600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050509035600160a060020a031691506101579050565b005b34801561013f57600080fd5b50610057610686565b600154600160a060020a031681565b600061016283610695565b905061016c610727565b15156101e8576040805160e560020a62461bcd02815260206004820152603e60248201527f4f6e6c79205369676e617475726974206f7220612076616c696461746564206160448201527f63636f756e742063616e20706572666f726d207468697320616374696f6e0000606482015290519081900360840190fd5b6102266040805190810160405280601a81526020017f7369676e61747572652e636f6e74726163742e63726561746564000000000000815250610695565b81141561026e5760408051600160a060020a038416815290517f735b832c03a149d256b1d395abb3d0e54863e04dae2329052cc91f9abb88a1be9181900360200190a1610681565b6102ac6040805190810160405280601981526020017f646f63756d656e742e636f6e74726163742e6372656174656400000000000000815250610695565b8114156102f45760408051600160a060020a038416815290517fcedb53231390005e2902a8613032a78a6a91c4ff102e6f7564c7c142ae4c67bf9181900360200190a1610681565b61032d604080519081016040528060158152602001605a60020a74199a5b194b98dbdb9d1c9858dd0b98dc99585d195902815250610695565b8114156103755760408051600160a060020a038416815290517f31a209c0c6a6a197b980906ee1598da098dcdcb051bf49abbc4a935702c0a6039181900360200190a1610681565b6103b36040805190810160405280601681526020017f6576656e742e636f6e74726163742e6372656174656400000000000000000000815250610695565b8114156103fb5760408051600160a060020a038416815290517ffc8a4c0621b9788c4dbe57053a51ce2d22625a067d039f38004df2a07ca755a49181900360200190a1610681565b6104396040805190810160405280601f81526020017f6365727469666965645f66696c652e636f6e74726163742e6372656174656400815250610695565b8114156104815760408051600160a060020a038416815290517f55dd5963860faee854fc76b870480ec012e65456190e6350324502f6ce497a899181900360200190a1610681565b6104bf6040805190810160405280602081526020017f6365727469666965645f656d61696c2e636f6e74726163742e63726561746564815250610695565b8114156105075760408051600160a060020a038416815290517fb3b2252d277703187b39f3f71acfe27ba95a9319e7267a8f24f5496123ee06e59181900360200190a1610681565b6105456040805190810160405280601c81526020017f63657274696669636174652e636f6e74726163742e6372656174656400000000815250610695565b81141561058d5760408051600160a060020a038416815290517f78f27c111a2e7bb421940823aa6c5ec84b80c6dd5a84e940b6c4450d069b19e79181900360200190a1610681565b6105be6040805190810160405280600d8152602001609a60020a6c1d1a5b595b1bd9cb985919195902815250610695565b8114156106065760408051600160a060020a038416815290517f200a8251f973ada077be39569cdd80e21e1d9e615deed72f11c87265c7f92bb49181900360200190a1610681565b61063d604080519081016040528060138152602001606a60020a721c185e5b595b9d17d8da1958dacb985919195902815250610695565b8114156106815760408051600160a060020a038416815290517f783f89b9183cfe2d3ec7e6f5c6f036c9ca3def7880752a97f04a9063f6f79c7f9181900360200190a15b505050565b600054600160a060020a031681565b6000816040516020018080602001828103825283818151815260200191508051906020019080838360005b838110156106d85781810151838201526020016106c0565b50505050905090810190601f1680156107055780820380516001836020036101000a031916815260200191505b5092505050604051602081830303815290604052805190602001209050919050565b60008054819081908190600160a060020a031632141561074957506001610886565b60015460408051808201825260138152606860020a7276616c6964617465642d6e6f746966696572730260208201908152825160e260020a633ce8989d0281526024810187905260048101938452825160448201528251600160a060020a039095169463f3a26274948893909283926064909101919080838360005b838110156107dd5781810151838201526020016107c5565b50505050905090810190601f16801561080a5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b15801561082857600080fd5b505afa15801561083c573d6000803e3d6000fd5b505050506040513d602081101561085257600080fd5b50519250600160a060020a03831632141561086f57506000915060015b600190910190600160a060020a0383161515610749575b925050509056fea165627a7a72305820956e9c0d360cfc0103630cfcacf5de84308b2500e980caf5c38e73bc1b1e80c60029",
  "deployedBytecode": "0x60806040526004361061003d5763ffffffff60e060020a6000350416635000596b8114610042578063e71e657614610073578063f9b5333514610133575b600080fd5b34801561004e57600080fd5b50610057610148565b60408051600160a060020a039092168252519081900360200190f35b34801561007f57600080fd5b506101316004803603604081101561009657600080fd5b8101906020810181356401000000008111156100b157600080fd5b8201836020820111156100c357600080fd5b803590602001918460018302840111640100000000831117156100e557600080fd5b91908080601f01602080910402602001604051908101604052809392919081815260200183838082843760009201919091525092955050509035600160a060020a031691506101579050565b005b34801561013f57600080fd5b50610057610686565b600154600160a060020a031681565b600061016283610695565b905061016c610727565b15156101e8576040805160e560020a62461bcd02815260206004820152603e60248201527f4f6e6c79205369676e617475726974206f7220612076616c696461746564206160448201527f63636f756e742063616e20706572666f726d207468697320616374696f6e0000606482015290519081900360840190fd5b6102266040805190810160405280601a81526020017f7369676e61747572652e636f6e74726163742e63726561746564000000000000815250610695565b81141561026e5760408051600160a060020a038416815290517f735b832c03a149d256b1d395abb3d0e54863e04dae2329052cc91f9abb88a1be9181900360200190a1610681565b6102ac6040805190810160405280601981526020017f646f63756d656e742e636f6e74726163742e6372656174656400000000000000815250610695565b8114156102f45760408051600160a060020a038416815290517fcedb53231390005e2902a8613032a78a6a91c4ff102e6f7564c7c142ae4c67bf9181900360200190a1610681565b61032d604080519081016040528060158152602001605a60020a74199a5b194b98dbdb9d1c9858dd0b98dc99585d195902815250610695565b8114156103755760408051600160a060020a038416815290517f31a209c0c6a6a197b980906ee1598da098dcdcb051bf49abbc4a935702c0a6039181900360200190a1610681565b6103b36040805190810160405280601681526020017f6576656e742e636f6e74726163742e6372656174656400000000000000000000815250610695565b8114156103fb5760408051600160a060020a038416815290517ffc8a4c0621b9788c4dbe57053a51ce2d22625a067d039f38004df2a07ca755a49181900360200190a1610681565b6104396040805190810160405280601f81526020017f6365727469666965645f66696c652e636f6e74726163742e6372656174656400815250610695565b8114156104815760408051600160a060020a038416815290517f55dd5963860faee854fc76b870480ec012e65456190e6350324502f6ce497a899181900360200190a1610681565b6104bf6040805190810160405280602081526020017f6365727469666965645f656d61696c2e636f6e74726163742e63726561746564815250610695565b8114156105075760408051600160a060020a038416815290517fb3b2252d277703187b39f3f71acfe27ba95a9319e7267a8f24f5496123ee06e59181900360200190a1610681565b6105456040805190810160405280601c81526020017f63657274696669636174652e636f6e74726163742e6372656174656400000000815250610695565b81141561058d5760408051600160a060020a038416815290517f78f27c111a2e7bb421940823aa6c5ec84b80c6dd5a84e940b6c4450d069b19e79181900360200190a1610681565b6105be6040805190810160405280600d8152602001609a60020a6c1d1a5b595b1bd9cb985919195902815250610695565b8114156106065760408051600160a060020a038416815290517f200a8251f973ada077be39569cdd80e21e1d9e615deed72f11c87265c7f92bb49181900360200190a1610681565b61063d604080519081016040528060138152602001606a60020a721c185e5b595b9d17d8da1958dacb985919195902815250610695565b8114156106815760408051600160a060020a038416815290517f783f89b9183cfe2d3ec7e6f5c6f036c9ca3def7880752a97f04a9063f6f79c7f9181900360200190a15b505050565b600054600160a060020a031681565b6000816040516020018080602001828103825283818151815260200191508051906020019080838360005b838110156106d85781810151838201526020016106c0565b50505050905090810190601f1680156107055780820380516001836020036101000a031916815260200191505b5092505050604051602081830303815290604052805190602001209050919050565b60008054819081908190600160a060020a031632141561074957506001610886565b60015460408051808201825260138152606860020a7276616c6964617465642d6e6f746966696572730260208201908152825160e260020a633ce8989d0281526024810187905260048101938452825160448201528251600160a060020a039095169463f3a26274948893909283926064909101919080838360005b838110156107dd5781810151838201526020016107c5565b50505050905090810190601f16801561080a5780820380516001836020036101000a031916815260200191505b50935050505060206040518083038186803b15801561082857600080fd5b505afa15801561083c573d6000803e3d6000fd5b505050506040513d602081101561085257600080fd5b50519250600160a060020a03831632141561086f57506000915060015b600190910190600160a060020a0383161515610749575b925050509056fea165627a7a72305820956e9c0d360cfc0103630cfcacf5de84308b2500e980caf5c38e73bc1b1e80c60029",
  "sourceMap": "187:5112:20:-;;;2244:1039;8:9:-1;5:2;;;30:1;27;20:12;5:2;2244:1039:20;;;;;;;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;2244:1039:20;2324:10;:23;;-1:-1:-1;;;;;;2324:23:20;;;2337:10;2324:23;;;;2358:54;;-1:-1:-1;;;;;2358:54:20;;;;;;;;;;;;2456:11;;;;;;;;;;;;2244:1039;2456:11;;;;;2423:60;;;;;2477:4;2423:60;;;;;;;;;;;;;;;;;;;;:12;;;;;:32;;2456:11;;2477:4;;2423:60;;;;;;;;2456:11;2423:60;;;;2456:11;;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2423:60:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2423:60:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2494:12:20;;2532:18;;;;;;;;;;;;;;;;;;2494:72;;;;;2560:4;2494:72;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2494:12:20;;;;-1:-1:-1;2494:37:20;;-1:-1:-1;2532:18:20;;2560:4;;2494:72;;;;;;;;2532:18;2494:72;;2532:18;2494:12;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2494:72:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2494:72:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2576:12:20;;2614:19;;;;;;;;;;;;;;;;;;2576:73;;;;;2643:4;2576:73;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2576:12:20;;;;-1:-1:-1;2576:37:20;;-1:-1:-1;2614:19:20;;2643:4;;2576:73;;;;;;;;2614:19;2576:73;;2614:19;2576:12;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2576:73:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2576:73:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2659:12:20;;2697:22;;;;;;;;;;;;;;;;;;2659:76;;;;;2729:4;2659:76;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2659:12:20;;;;-1:-1:-1;2659:37:20;;-1:-1:-1;2697:22:20;;2729:4;;2659:76;;;;;;;;2697:22;2659:76;;2697:22;2659:12;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2659:76:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2659:76:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2745:12:20;;2783:23;;;;;;;;;;;;;;;;;;2745:77;;;;;2816:4;2745:77;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2745:12:20;;;;-1:-1:-1;2745:37:20;;-1:-1:-1;2783:23:20;;2816:4;;2745:77;;;;;;;;2783:23;2745:77;;2783:23;2745:12;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2745:77:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2745:77:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2832:12:20;;2870:24;;;;;;;;;;;;;;;;;;2832:78;;;;;2904:4;2832:78;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2832:12:20;;;;-1:-1:-1;2832:37:20;;-1:-1:-1;2870:24:20;;2904:4;;2832:78;;;;;;;;2870:24;2832:78;;2870:24;2832:12;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2832:78:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2832:78:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;2920:12:20;;2958:25;;;;;;;;;;;;;;;;;;2920:79;;;;;2993:4;2920:79;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;2920:12:20;;;;-1:-1:-1;2920:37:20;;-1:-1:-1;2958:25:20;;2993:4;;2920:79;;;;;;;;2958:25;2920:79;;2958:25;2920:12;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;2920:79:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;2920:79:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3009:12:20;;3047:28;;;;;;;;;;;;;;;;;;3009:82;;;;;3085:4;3009:82;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3009:12:20;;;;-1:-1:-1;3009:37:20;;-1:-1:-1;3047:28:20;;3085:4;;3009:82;;;;;;;;3047:28;3009:82;;3047:28;3009:12;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3009:82:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3009:82:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3101:12:20;;3139:28;;;;;;;;;;;;;;;;;;3101:82;;;;;3177:4;3101:82;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3101:12:20;;;;-1:-1:-1;3101:37:20;;-1:-1:-1;3139:28:20;;3177:4;;3101:82;;;;;;;;3139:28;3101:82;;3139:28;3101:12;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3101:82:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3101:82:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;-1:-1;;3193:12:20;;3231:29;;;;;;;;;;;;;;;;;;3193:83;;;;;3270:4;3193:83;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;3193:12:20;;;;-1:-1:-1;3193:37:20;;-1:-1:-1;3231:29:20;;3270:4;;3193:83;;;;;;;;3231:29;3193:83;;3231:29;3193:12;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;3193:83:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3193:83:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;3193:83:20;;;;2244:1039;187:5112;;;;;;",
  "deployedSourceMap": "187:5112:20:-;;;;;;;;;-1:-1:-1;;;187:5112:20;;;;;;;;;;;;;;;;;;;;;;;266:43;;8:9:-1;5:2;;;30:1;27;20:12;5:2;266:43:20;;;;;;;;-1:-1:-1;;;;;266:43:20;;;;;;;;;;;;;;3289:1350;;8:9:-1;5:2;;;30:1;27;20:12;5:2;3289:1350:20;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;3289:1350:20;;;;;;;;21:11:-1;5:28;;2:2;;;46:1;43;36:12;2:2;3289:1350:20;;35:9:-1;28:4;12:14;8:25;5:40;2:2;;;58:1;55;48:12;2:2;3289:1350:20;;;;;;100:9:-1;95:1;81:12;77:20;67:8;63:35;60:50;39:11;25:12;22:29;11:107;8:2;;;131:1;128;121:12;8:2;3289:1350:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;30:3:-1;22:6;14;1:33;99:1;81:16;;74:27;;;;-1:-1;3289:1350:20;;-1:-1:-1;;;3289:1350:20;;-1:-1:-1;;;;;3289:1350:20;;-1:-1:-1;3289:1350:20;;-1:-1:-1;3289:1350:20;;;234:25;;8:9:-1;5:2;;;30:1;27;20:12;5:2;234:25:20;;;;266:43;;;-1:-1:-1;;;;;266:43:20;;:::o;3289:1350::-;3396:20;3419:23;3432:9;3419:12;:23::i;:::-;3396:46;;3474:14;:12;:14::i;:::-;3453:123;;;;;;;-1:-1:-1;;;;;3453:123:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;3607:37;3620:23;;;;;;;;;;;;;;;;;;3607:12;:37::i;:::-;3591:12;:53;3587:1046;;;3665:22;;;-1:-1:-1;;;;;3665:22:20;;;;;;;;;;;;;;;3587:1046;;;3724:36;3737:22;;;;;;;;;;;;;;;;;;3724:12;:36::i;:::-;3708:12;:52;3704:929;;;3781:21;;;-1:-1:-1;;;;;3781:21:20;;;;;;;;;;;;;;;3704:929;;;3839:32;3852:18;;;;;;;;;;;;;;-1:-1:-1;;;;;3852:18:20;;;3839:12;:32::i;:::-;3823:12;:48;3819:814;;;3892:17;;;-1:-1:-1;;;;;3892:17:20;;;;;;;;;;;;;;;3819:814;;;3946:33;3959:19;;;;;;;;;;;;;;;;;;3946:12;:33::i;:::-;3930:12;:49;3926:707;;;4000:18;;;-1:-1:-1;;;;;4000:18:20;;;;;;;;;;;;;;;3926:707;;;4055:42;4068:28;;;;;;;;;;;;;;;;;;4055:12;:42::i;:::-;4039:12;:58;4035:598;;;4118:26;;;-1:-1:-1;;;;;4118:26:20;;;;;;;;;;;;;;;4035:598;;;4181:43;4194:29;;;;;;;;;;;;;;;;;;4181:12;:43::i;:::-;4165:12;:59;4161:472;;;4245:27;;;-1:-1:-1;;;;;4245:27:20;;;;;;;;;;;;;;;4161:472;;;4309:39;4322:25;;;;;;;;;;;;;;;;;;4309:12;:39::i;:::-;4293:12;:55;4289:344;;;4369:24;;;-1:-1:-1;;;;;4369:24:20;;;;;;;;;;;;;;;4289:344;;;4430:33;4443:19;;;;;;;;;;;;;;-1:-1:-1;;;;;4443:19:20;;;4430:12;:33::i;:::-;4414:12;:49;4410:223;;;4484:18;;;-1:-1:-1;;;;;4484:18:20;;;;;;;;;;;;;;;4410:223;;;4539:39;4552:25;;;;;;;;;;;;;;-1:-1:-1;;;;;4552:25:20;;;4539:12;:39::i;:::-;4523:12;:55;4519:114;;;4599:23;;;-1:-1:-1;;;;;4599:23:20;;;;;;;;;;;;;;;4519:114;3289:1350;;;:::o;234:25::-;;;-1:-1:-1;;;;;234:25:20;;:::o;342:182:31:-;439:7;503:3;492:15;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;23:1:-1;8:100;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;492:15:31;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;49:4:-1;39:7;30;26:21;22:32;13:7;6:49;492:15:31;;;469:48;;;;;;462:55;;342:182;;;:::o;4645:652:20:-;4691:4;4821:10;;4691:4;;;;;;-1:-1:-1;;;;;4821:10:20;4808:9;:23;4804:463;;;-1:-1:-1;4856:4:20;4804:463;;;4930:12;;4968:23;;;;;;;;;;;-1:-1:-1;;;;;4968:23:20;;;;;;4930:81;;-1:-1:-1;;;;;4930:81:20;;;;;;;;;;;;;;;;;;;;;;-1:-1:-1;;;;;4930:12:20;;;;:37;;4993:17;;4930:81;;;;;;;;;4968:23;4930:81;;4968:23;4930:12;8:100:-1;33:3;30:1;27:10;8:100;;;90:11;;;84:18;71:11;;;64:39;52:2;45:10;8:100;;;12:14;4930:81:20;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;8:9:-1;5:2;;;30:1;27;20:12;5:2;4930:81:20;;;;8:9:-1;5:2;;;45:16;42:1;39;24:38;77:16;74:1;67:27;5:2;4930:81:20;;;;;;;13:2:-1;8:3;5:11;2:2;;;29:1;26;19:12;2:2;-1:-1;4930:81:20;;-1:-1:-1;;;;;;5034:27:20;;5052:9;5034:27;5030:137;;;-1:-1:-1;5146:1:20;;-1:-1:-1;5094:4:20;5030:137;5185:19;;;;;-1:-1:-1;;;;;5227:28:20;;;;4892:365;;4804:463;5284:6;-1:-1:-1;;;4645:652:20;:::o",
  "source": "pragma solidity <0.6.0;\n\n/*\nGas to deploy: 1.241.327\n*/\n\nimport \"./interfaces/NotifierInterface.sol\";\nimport \"./interfaces/SignaturitUserInterface.sol\";\n\nimport \"./libraries/Utils.sol\";\n\ncontract UserEvents is NotifierInterface {\n    address public signaturit;\n\n    SignaturitUserInterface public userContract;\n\n    string constant private USER_EVENTS = \"user_events\";\n\n    string constant private FILE_CREATED_EVENT = \"file.contract.created\";\n    string constant private EVENT_CREATED_EVENT = \"event.contract.created\";\n    string constant private TIMELOG_ADDED_EVENT = \"timelog.added\";\n    string constant private DOCUMENT_CREATED_EVENT = \"document.contract.created\";\n    string constant private SIGNATURE_CREATED_EVENT = \"signature.contract.created\";\n    string constant private PAYMENT_CHECK_ADDED_EVENT = \"payment_check.added\";\n    string constant private CERTIFICATE_CREATED_EVENT = \"certificate.contract.created\";\n    string constant private CERTIFIED_FILE_CREATED_EVENT = \"certified_file.contract.created\";\n    string constant private CERTIFIED_EMAIL_CREATED_EVENT = \"certified_email.contract.created\";\n\n    string constant private FILE_NOTIFIERS_KEY = \"file-notifiers\";\n    string constant private EVENT_NOTIFIERS_KEY = \"event-notifiers\";\n    string constant private DOCUMENT_NOTIFIERS_KEY = \"document-notifiers\";\n    string constant private SIGNATURE_NOTIFIERS_KEY = \"signature-notifiers\";\n    string constant private TIMELOGGER_NOTIFIERS_KEY = \"timelogger-clause-notifiers\";\n    string constant private CERTIFICATE_NOTIFIERS_KEY = \"certificate-notifiers\";\n    string constant private PAYMENT_CHECKS_NOTIFIERS_KEY = \"payment-clause-notifiers\";\n    string constant private CERTIFIED_FILE_NOTIFIERS_KEY = \"certified-file-notifiers\";\n    string constant private CERTIFIED_EMAIL_NOTIFIERS_KEY = \"certified-email-notifiers\";\n\n    string constant private VALIDATED_NOTIFIERS_KEY = \"validated-notifiers\";\n\n    event SignatureCreated(address);\n    event DocumentCreated(address);\n    event FileCreated(address);\n    event EventCreated(address);\n    event CertifiedFileCreated(address);\n    event CertifiedEmailCreated(address);\n    event CertificateCreated(address);\n    event TimeLogAdded(address);\n    event PaymentCheckAdded(address);\n\n    constructor (\n        address signaturitUser\n    )\n        public\n    {\n        signaturit = msg.sender;\n\n        userContract = SignaturitUserInterface(signaturitUser);\n\n        userContract.setAddressAttribute(USER_EVENTS, address(this));\n\n        userContract.setAddressArrayAttribute(FILE_NOTIFIERS_KEY, address(this));\n        userContract.setAddressArrayAttribute(EVENT_NOTIFIERS_KEY, address(this));\n        userContract.setAddressArrayAttribute(DOCUMENT_NOTIFIERS_KEY, address(this));\n        userContract.setAddressArrayAttribute(SIGNATURE_NOTIFIERS_KEY, address(this));\n        userContract.setAddressArrayAttribute(TIMELOGGER_NOTIFIERS_KEY, address(this));\n        userContract.setAddressArrayAttribute(CERTIFICATE_NOTIFIERS_KEY, address(this));\n        userContract.setAddressArrayAttribute(CERTIFIED_FILE_NOTIFIERS_KEY, address(this));\n        userContract.setAddressArrayAttribute(PAYMENT_CHECKS_NOTIFIERS_KEY, address(this));\n        userContract.setAddressArrayAttribute(CERTIFIED_EMAIL_NOTIFIERS_KEY, address(this));\n    }\n\n    function notify (\n        string memory eventType,\n        address addr\n    )\n        public\n    {\n        bytes32 bytes32event = Utils.keccak(eventType);\n\n        require(\n            validAddress(),\n            \"Only Signaturit or a validated account can perform this action\"\n        );\n\n        if (bytes32event == Utils.keccak(SIGNATURE_CREATED_EVENT)) {\n            emit SignatureCreated(addr);\n        } else if (bytes32event == Utils.keccak(DOCUMENT_CREATED_EVENT)) {\n            emit DocumentCreated(addr);\n        } else if (bytes32event == Utils.keccak(FILE_CREATED_EVENT)) {\n            emit FileCreated(addr);\n        } else if (bytes32event == Utils.keccak(EVENT_CREATED_EVENT)) {\n            emit EventCreated(addr);\n        } else if (bytes32event == Utils.keccak(CERTIFIED_FILE_CREATED_EVENT)) {\n            emit CertifiedFileCreated(addr);\n        } else if (bytes32event == Utils.keccak(CERTIFIED_EMAIL_CREATED_EVENT)) {\n            emit CertifiedEmailCreated(addr);\n        } else if (bytes32event == Utils.keccak(CERTIFICATE_CREATED_EVENT)) {\n            emit CertificateCreated(addr);\n        } else if (bytes32event == Utils.keccak(TIMELOG_ADDED_EVENT)) {\n            emit TimeLogAdded(addr);\n        } else if (bytes32event == Utils.keccak(PAYMENT_CHECK_ADDED_EVENT)) {\n            emit PaymentCheckAdded(addr);\n        }\n    }\n\n    function validAddress() internal view returns(bool){\n        address checkedAddress;\n        uint notificationIndex = 0;\n        bool result = false;\n\n        if (tx.origin == signaturit) {\n            result = true;\n\n        } else {\n            do {\n                checkedAddress = userContract.getAddressArrayAttribute(VALIDATED_NOTIFIERS_KEY, notificationIndex);\n\n                if (checkedAddress == tx.origin) {\n                    result = true;\n\n                    checkedAddress = address(0);\n                }\n\n                ++notificationIndex;\n            } while (checkedAddress != address(0));\n        }\n\n        return result;\n    }\n}",
  "sourcePath": "/home/administrator/workspace/signaturit-solidity-contracts/contracts/UserEvents.sol",
  "ast": {
    "absolutePath": "/home/administrator/workspace/signaturit-solidity-contracts/contracts/UserEvents.sol",
    "exportedSymbols": {
      "UserEvents": [
        6521
      ]
    },
    "id": 6522,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 6115,
        "literals": [
          "solidity",
          "<",
          "0.6",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:20"
      },
      {
        "absolutePath": "/home/administrator/workspace/signaturit-solidity-contracts/contracts/interfaces/NotifierInterface.sol",
        "file": "./interfaces/NotifierInterface.sol",
        "id": 6116,
        "nodeType": "ImportDirective",
        "scope": 6522,
        "sourceUnit": 6928,
        "src": "57:44:20",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/administrator/workspace/signaturit-solidity-contracts/contracts/interfaces/SignaturitUserInterface.sol",
        "file": "./interfaces/SignaturitUserInterface.sol",
        "id": 6117,
        "nodeType": "ImportDirective",
        "scope": 6522,
        "sourceUnit": 7252,
        "src": "102:50:20",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/administrator/workspace/signaturit-solidity-contracts/contracts/libraries/Utils.sol",
        "file": "./libraries/Utils.sol",
        "id": 6118,
        "nodeType": "ImportDirective",
        "scope": 6522,
        "sourceUnit": 7290,
        "src": "154:31:20",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 6119,
              "name": "NotifierInterface",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6927,
              "src": "210:17:20",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_NotifierInterface_$6927",
                "typeString": "contract NotifierInterface"
              }
            },
            "id": 6120,
            "nodeType": "InheritanceSpecifier",
            "src": "210:17:20"
          }
        ],
        "contractDependencies": [
          6927
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 6521,
        "linearizedBaseContracts": [
          6521,
          6927
        ],
        "name": "UserEvents",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 6122,
            "name": "signaturit",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "234:25:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 6121,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "234:7:20",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 6124,
            "name": "userContract",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "266:43:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_SignaturitUserInterface_$7251",
              "typeString": "contract SignaturitUserInterface"
            },
            "typeName": {
              "contractScope": null,
              "id": 6123,
              "name": "SignaturitUserInterface",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 7251,
              "src": "266:23:20",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SignaturitUserInterface_$7251",
                "typeString": "contract SignaturitUserInterface"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 6127,
            "name": "USER_EVENTS",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "316:51:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6125,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "316:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "757365725f6576656e7473",
              "id": 6126,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "354:13:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_fa95deefbb23760d542ec014fce37f325a25019eeabc11d913751fd29ff072b3",
                "typeString": "literal_string \"user_events\""
              },
              "value": "user_events"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6130,
            "name": "FILE_CREATED_EVENT",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "374:68:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6128,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "374:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "66696c652e636f6e74726163742e63726561746564",
              "id": 6129,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "419:23:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_2233a27e702ee6162cc2e308200369bccc6b94a4aee0e31589d2f43a31c28a19",
                "typeString": "literal_string \"file.contract.created\""
              },
              "value": "file.contract.created"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6133,
            "name": "EVENT_CREATED_EVENT",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "448:70:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6131,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "448:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "6576656e742e636f6e74726163742e63726561746564",
              "id": 6132,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "494:24:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_940d087e88f9b637f99eb8adf4909f7a72371a7de914372d49d6ef145f5d420a",
                "typeString": "literal_string \"event.contract.created\""
              },
              "value": "event.contract.created"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6136,
            "name": "TIMELOG_ADDED_EVENT",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "524:61:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6134,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "524:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "74696d656c6f672e6164646564",
              "id": 6135,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "570:15:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_48c0c01ceb3a6df8c49c8f86f60c6aa590f2d31ad89fa7b7e763dd9839820768",
                "typeString": "literal_string \"timelog.added\""
              },
              "value": "timelog.added"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6139,
            "name": "DOCUMENT_CREATED_EVENT",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "591:76:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6137,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "591:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "646f63756d656e742e636f6e74726163742e63726561746564",
              "id": 6138,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "640:27:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_cf7018f27b4f1c9203d649679ba3bf8e0acd989de189f14a3ecc0f834baee2ad",
                "typeString": "literal_string \"document.contract.created\""
              },
              "value": "document.contract.created"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6142,
            "name": "SIGNATURE_CREATED_EVENT",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "673:78:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6140,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "673:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "7369676e61747572652e636f6e74726163742e63726561746564",
              "id": 6141,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "723:28:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_3c84dd064979bbdb715484653bafe8622e8a568c4ab0aeaa9d5d3f68f5a44beb",
                "typeString": "literal_string \"signature.contract.created\""
              },
              "value": "signature.contract.created"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6145,
            "name": "PAYMENT_CHECK_ADDED_EVENT",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "757:73:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6143,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "757:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "7061796d656e745f636865636b2e6164646564",
              "id": 6144,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "809:21:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_2889ca0639ae00927f6713561bf60d7d68ca787d04db32b09ccc9d57f1c70036",
                "typeString": "literal_string \"payment_check.added\""
              },
              "value": "payment_check.added"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6148,
            "name": "CERTIFICATE_CREATED_EVENT",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "836:82:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6146,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "836:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "63657274696669636174652e636f6e74726163742e63726561746564",
              "id": 6147,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "888:30:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_60f55e549ede8476eef03c6c242f3f428cb14f442cf41e08e5091b8acc5bd485",
                "typeString": "literal_string \"certificate.contract.created\""
              },
              "value": "certificate.contract.created"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6151,
            "name": "CERTIFIED_FILE_CREATED_EVENT",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "924:88:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6149,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "924:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "6365727469666965645f66696c652e636f6e74726163742e63726561746564",
              "id": 6150,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "979:33:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_6ea586b01b93169892b084e656c4efd004082d61c22d49fa7046dacfea77c0c8",
                "typeString": "literal_string \"certified_file.contract.created\""
              },
              "value": "certified_file.contract.created"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6154,
            "name": "CERTIFIED_EMAIL_CREATED_EVENT",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "1018:90:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6152,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1018:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "6365727469666965645f656d61696c2e636f6e74726163742e63726561746564",
              "id": 6153,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1074:34:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_ae5b77f70831a789b8fd4a912091a91a55780b1a05636a18add16c7002080c26",
                "typeString": "literal_string \"certified_email.contract.created\""
              },
              "value": "certified_email.contract.created"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6157,
            "name": "FILE_NOTIFIERS_KEY",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "1115:61:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6155,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1115:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "66696c652d6e6f74696669657273",
              "id": 6156,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1160:16:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_564d80aba11e51a3eff777d482df81c48f4da2423384618e7be1ee86ad1bfee6",
                "typeString": "literal_string \"file-notifiers\""
              },
              "value": "file-notifiers"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6160,
            "name": "EVENT_NOTIFIERS_KEY",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "1182:63:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6158,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1182:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "6576656e742d6e6f74696669657273",
              "id": 6159,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1228:17:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_b25bd55d22992cd8575c70596ff0d0e7a67a2b59c4214f4f8859fdd431ce46f0",
                "typeString": "literal_string \"event-notifiers\""
              },
              "value": "event-notifiers"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6163,
            "name": "DOCUMENT_NOTIFIERS_KEY",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "1251:69:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6161,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1251:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "646f63756d656e742d6e6f74696669657273",
              "id": 6162,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1300:20:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_7d28b4fa182b49d585cf0be720ed320f87b6af7199ef0f994429e1aa22d0664d",
                "typeString": "literal_string \"document-notifiers\""
              },
              "value": "document-notifiers"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6166,
            "name": "SIGNATURE_NOTIFIERS_KEY",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "1326:71:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6164,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1326:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "7369676e61747572652d6e6f74696669657273",
              "id": 6165,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1376:21:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_3b317d4221d274688226013f55affecc0f5c09cf980dc6d9578c6a596721f3cf",
                "typeString": "literal_string \"signature-notifiers\""
              },
              "value": "signature-notifiers"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6169,
            "name": "TIMELOGGER_NOTIFIERS_KEY",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "1403:80:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6167,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1403:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "74696d656c6f676765722d636c617573652d6e6f74696669657273",
              "id": 6168,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1454:29:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_fa90fc167f644237810e25c760daede8ce998a6a3d1edcc9e1ea94b66fdbfb3d",
                "typeString": "literal_string \"timelogger-clause-notifiers\""
              },
              "value": "timelogger-clause-notifiers"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6172,
            "name": "CERTIFICATE_NOTIFIERS_KEY",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "1489:75:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6170,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1489:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "63657274696669636174652d6e6f74696669657273",
              "id": 6171,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1541:23:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_e9de243ad0d1c8f5caa2f997b8265730fa86b037e7af2461b0b6837c6e81fe66",
                "typeString": "literal_string \"certificate-notifiers\""
              },
              "value": "certificate-notifiers"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6175,
            "name": "PAYMENT_CHECKS_NOTIFIERS_KEY",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "1570:81:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6173,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1570:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "7061796d656e742d636c617573652d6e6f74696669657273",
              "id": 6174,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1625:26:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_757e3c91c30725599892de8769997ed1c7b74e26fe73637ce24a95ccb40bd258",
                "typeString": "literal_string \"payment-clause-notifiers\""
              },
              "value": "payment-clause-notifiers"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6178,
            "name": "CERTIFIED_FILE_NOTIFIERS_KEY",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "1657:81:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6176,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1657:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "6365727469666965642d66696c652d6e6f74696669657273",
              "id": 6177,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1712:26:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_4c035f1ebcfc258c72fa01905bcc3cb43341138bfce84b3d302a119952191b84",
                "typeString": "literal_string \"certified-file-notifiers\""
              },
              "value": "certified-file-notifiers"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6181,
            "name": "CERTIFIED_EMAIL_NOTIFIERS_KEY",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "1744:83:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6179,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1744:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "6365727469666965642d656d61696c2d6e6f74696669657273",
              "id": 6180,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1800:27:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_34af7359cfbe393aa940dd768d8b69e9f608525971e6ac17a87116d8bbdb6179",
                "typeString": "literal_string \"certified-email-notifiers\""
              },
              "value": "certified-email-notifiers"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6184,
            "name": "VALIDATED_NOTIFIERS_KEY",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "1834:71:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6182,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1834:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "76616c6964617465642d6e6f74696669657273",
              "id": 6183,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1884:21:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_d0687944729cecf6c2b04577399c9af282ff4f7920febb6045e3d57f275ed547",
                "typeString": "literal_string \"validated-notifiers\""
              },
              "value": "validated-notifiers"
            },
            "visibility": "private"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 6188,
            "name": "SignatureCreated",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 6187,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6186,
                  "indexed": false,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6188,
                  "src": "1935:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6185,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1935:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1934:9:20"
            },
            "src": "1912:32:20"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 6192,
            "name": "DocumentCreated",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 6191,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6190,
                  "indexed": false,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6192,
                  "src": "1971:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6189,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1971:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1970:9:20"
            },
            "src": "1949:31:20"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 6196,
            "name": "FileCreated",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 6195,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6194,
                  "indexed": false,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6196,
                  "src": "2003:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6193,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2003:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2002:9:20"
            },
            "src": "1985:27:20"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 6200,
            "name": "EventCreated",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 6199,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6198,
                  "indexed": false,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6200,
                  "src": "2036:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6197,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2036:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2035:9:20"
            },
            "src": "2017:28:20"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 6204,
            "name": "CertifiedFileCreated",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 6203,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6202,
                  "indexed": false,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6204,
                  "src": "2077:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6201,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2077:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2076:9:20"
            },
            "src": "2050:36:20"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 6208,
            "name": "CertifiedEmailCreated",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 6207,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6206,
                  "indexed": false,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6208,
                  "src": "2119:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6205,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2119:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2118:9:20"
            },
            "src": "2091:37:20"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 6212,
            "name": "CertificateCreated",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 6211,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6210,
                  "indexed": false,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6212,
                  "src": "2158:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6209,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2158:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2157:9:20"
            },
            "src": "2133:34:20"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 6216,
            "name": "TimeLogAdded",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 6215,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6214,
                  "indexed": false,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6216,
                  "src": "2191:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6213,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2191:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2190:9:20"
            },
            "src": "2172:28:20"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 6220,
            "name": "PaymentCheckAdded",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 6219,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6218,
                  "indexed": false,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6220,
                  "src": "2229:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6217,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2229:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2228:9:20"
            },
            "src": "2205:33:20"
          },
          {
            "body": {
              "id": 6326,
              "nodeType": "Block",
              "src": "2314:969:20",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 6228,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 6225,
                      "name": "signaturit",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6122,
                      "src": "2324:10:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 6226,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7304,
                        "src": "2337:3:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 6227,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2337:10:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "src": "2324:23:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 6229,
                  "nodeType": "ExpressionStatement",
                  "src": "2324:23:20"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 6234,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 6230,
                      "name": "userContract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6124,
                      "src": "2358:12:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_SignaturitUserInterface_$7251",
                        "typeString": "contract SignaturitUserInterface"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 6232,
                          "name": "signaturitUser",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6222,
                          "src": "2397:14:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 6231,
                        "name": "SignaturitUserInterface",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7251,
                        "src": "2373:23:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_SignaturitUserInterface_$7251_$",
                          "typeString": "type(contract SignaturitUserInterface)"
                        }
                      },
                      "id": 6233,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2373:39:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_SignaturitUserInterface_$7251",
                        "typeString": "contract SignaturitUserInterface"
                      }
                    },
                    "src": "2358:54:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_SignaturitUserInterface_$7251",
                      "typeString": "contract SignaturitUserInterface"
                    }
                  },
                  "id": 6235,
                  "nodeType": "ExpressionStatement",
                  "src": "2358:54:20"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6239,
                        "name": "USER_EVENTS",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6127,
                        "src": "2456:11:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6241,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7379,
                            "src": "2477:4:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          ],
                          "id": 6240,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2469:7:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 6242,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2469:13:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 6236,
                        "name": "userContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6124,
                        "src": "2423:12:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SignaturitUserInterface_$7251",
                          "typeString": "contract SignaturitUserInterface"
                        }
                      },
                      "id": 6238,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setAddressAttribute",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7197,
                      "src": "2423:32:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_address_$returns$__$",
                        "typeString": "function (string memory,address) external"
                      }
                    },
                    "id": 6243,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2423:60:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6244,
                  "nodeType": "ExpressionStatement",
                  "src": "2423:60:20"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6248,
                        "name": "FILE_NOTIFIERS_KEY",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6157,
                        "src": "2532:18:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6250,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7379,
                            "src": "2560:4:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          ],
                          "id": 6249,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2552:7:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 6251,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2552:13:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 6245,
                        "name": "userContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6124,
                        "src": "2494:12:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SignaturitUserInterface_$7251",
                          "typeString": "contract SignaturitUserInterface"
                        }
                      },
                      "id": 6247,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setAddressArrayAttribute",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7211,
                      "src": "2494:37:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_address_$returns$__$",
                        "typeString": "function (string memory,address) external"
                      }
                    },
                    "id": 6252,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2494:72:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6253,
                  "nodeType": "ExpressionStatement",
                  "src": "2494:72:20"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6257,
                        "name": "EVENT_NOTIFIERS_KEY",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6160,
                        "src": "2614:19:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6259,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7379,
                            "src": "2643:4:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          ],
                          "id": 6258,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2635:7:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 6260,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2635:13:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 6254,
                        "name": "userContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6124,
                        "src": "2576:12:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SignaturitUserInterface_$7251",
                          "typeString": "contract SignaturitUserInterface"
                        }
                      },
                      "id": 6256,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setAddressArrayAttribute",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7211,
                      "src": "2576:37:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_address_$returns$__$",
                        "typeString": "function (string memory,address) external"
                      }
                    },
                    "id": 6261,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2576:73:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6262,
                  "nodeType": "ExpressionStatement",
                  "src": "2576:73:20"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6266,
                        "name": "DOCUMENT_NOTIFIERS_KEY",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6163,
                        "src": "2697:22:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6268,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7379,
                            "src": "2729:4:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          ],
                          "id": 6267,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2721:7:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 6269,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2721:13:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 6263,
                        "name": "userContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6124,
                        "src": "2659:12:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SignaturitUserInterface_$7251",
                          "typeString": "contract SignaturitUserInterface"
                        }
                      },
                      "id": 6265,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setAddressArrayAttribute",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7211,
                      "src": "2659:37:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_address_$returns$__$",
                        "typeString": "function (string memory,address) external"
                      }
                    },
                    "id": 6270,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2659:76:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6271,
                  "nodeType": "ExpressionStatement",
                  "src": "2659:76:20"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6275,
                        "name": "SIGNATURE_NOTIFIERS_KEY",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6166,
                        "src": "2783:23:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6277,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7379,
                            "src": "2816:4:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          ],
                          "id": 6276,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2808:7:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 6278,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2808:13:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 6272,
                        "name": "userContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6124,
                        "src": "2745:12:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SignaturitUserInterface_$7251",
                          "typeString": "contract SignaturitUserInterface"
                        }
                      },
                      "id": 6274,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setAddressArrayAttribute",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7211,
                      "src": "2745:37:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_address_$returns$__$",
                        "typeString": "function (string memory,address) external"
                      }
                    },
                    "id": 6279,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2745:77:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6280,
                  "nodeType": "ExpressionStatement",
                  "src": "2745:77:20"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6284,
                        "name": "TIMELOGGER_NOTIFIERS_KEY",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6169,
                        "src": "2870:24:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6286,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7379,
                            "src": "2904:4:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          ],
                          "id": 6285,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2896:7:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 6287,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2896:13:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 6281,
                        "name": "userContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6124,
                        "src": "2832:12:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SignaturitUserInterface_$7251",
                          "typeString": "contract SignaturitUserInterface"
                        }
                      },
                      "id": 6283,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setAddressArrayAttribute",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7211,
                      "src": "2832:37:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_address_$returns$__$",
                        "typeString": "function (string memory,address) external"
                      }
                    },
                    "id": 6288,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2832:78:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6289,
                  "nodeType": "ExpressionStatement",
                  "src": "2832:78:20"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6293,
                        "name": "CERTIFICATE_NOTIFIERS_KEY",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6172,
                        "src": "2958:25:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6295,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7379,
                            "src": "2993:4:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          ],
                          "id": 6294,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2985:7:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 6296,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2985:13:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 6290,
                        "name": "userContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6124,
                        "src": "2920:12:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SignaturitUserInterface_$7251",
                          "typeString": "contract SignaturitUserInterface"
                        }
                      },
                      "id": 6292,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setAddressArrayAttribute",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7211,
                      "src": "2920:37:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_address_$returns$__$",
                        "typeString": "function (string memory,address) external"
                      }
                    },
                    "id": 6297,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2920:79:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6298,
                  "nodeType": "ExpressionStatement",
                  "src": "2920:79:20"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6302,
                        "name": "CERTIFIED_FILE_NOTIFIERS_KEY",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6178,
                        "src": "3047:28:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6304,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7379,
                            "src": "3085:4:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          ],
                          "id": 6303,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "3077:7:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 6305,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3077:13:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 6299,
                        "name": "userContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6124,
                        "src": "3009:12:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SignaturitUserInterface_$7251",
                          "typeString": "contract SignaturitUserInterface"
                        }
                      },
                      "id": 6301,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setAddressArrayAttribute",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7211,
                      "src": "3009:37:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_address_$returns$__$",
                        "typeString": "function (string memory,address) external"
                      }
                    },
                    "id": 6306,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3009:82:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6307,
                  "nodeType": "ExpressionStatement",
                  "src": "3009:82:20"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6311,
                        "name": "PAYMENT_CHECKS_NOTIFIERS_KEY",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6175,
                        "src": "3139:28:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6313,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7379,
                            "src": "3177:4:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          ],
                          "id": 6312,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "3169:7:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 6314,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3169:13:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 6308,
                        "name": "userContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6124,
                        "src": "3101:12:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SignaturitUserInterface_$7251",
                          "typeString": "contract SignaturitUserInterface"
                        }
                      },
                      "id": 6310,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setAddressArrayAttribute",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7211,
                      "src": "3101:37:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_address_$returns$__$",
                        "typeString": "function (string memory,address) external"
                      }
                    },
                    "id": 6315,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3101:82:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6316,
                  "nodeType": "ExpressionStatement",
                  "src": "3101:82:20"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6320,
                        "name": "CERTIFIED_EMAIL_NOTIFIERS_KEY",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6181,
                        "src": "3231:29:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6322,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7379,
                            "src": "3270:4:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          ],
                          "id": 6321,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "3262:7:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 6323,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3262:13:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 6317,
                        "name": "userContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6124,
                        "src": "3193:12:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SignaturitUserInterface_$7251",
                          "typeString": "contract SignaturitUserInterface"
                        }
                      },
                      "id": 6319,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setAddressArrayAttribute",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7211,
                      "src": "3193:37:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_address_$returns$__$",
                        "typeString": "function (string memory,address) external"
                      }
                    },
                    "id": 6324,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3193:83:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6325,
                  "nodeType": "ExpressionStatement",
                  "src": "3193:83:20"
                }
              ]
            },
            "documentation": null,
            "id": 6327,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6223,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6222,
                  "name": "signaturitUser",
                  "nodeType": "VariableDeclaration",
                  "scope": 6327,
                  "src": "2266:22:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6221,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2266:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2256:38:20"
            },
            "returnParameters": {
              "id": 6224,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2314:0:20"
            },
            "scope": 6521,
            "src": "2244:1039:20",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6455,
              "nodeType": "Block",
              "src": "3386:1253:20",
              "statements": [
                {
                  "assignments": [
                    6335
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6335,
                      "name": "bytes32event",
                      "nodeType": "VariableDeclaration",
                      "scope": 6455,
                      "src": "3396:20:20",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 6334,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "3396:7:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6340,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6338,
                        "name": "eventType",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6329,
                        "src": "3432:9:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 6336,
                        "name": "Utils",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7289,
                        "src": "3419:5:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Utils_$7289_$",
                          "typeString": "type(library Utils)"
                        }
                      },
                      "id": 6337,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "keccak",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7288,
                      "src": "3419:12:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (string memory) pure returns (bytes32)"
                      }
                    },
                    "id": 6339,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3419:23:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3396:46:20"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 6342,
                          "name": "validAddress",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6520,
                          "src": "3474:12:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 6343,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3474:14:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4f6e6c79205369676e617475726974206f7220612076616c696461746564206163636f756e742063616e20706572666f726d207468697320616374696f6e",
                        "id": 6344,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3502:64:20",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7703bb306b638efa26cf75d92098d2c2ebab906395f2a26342f7d63cde8f55c2",
                          "typeString": "literal_string \"Only Signaturit or a validated account can perform this action\""
                        },
                        "value": "Only Signaturit or a validated account can perform this action"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7703bb306b638efa26cf75d92098d2c2ebab906395f2a26342f7d63cde8f55c2",
                          "typeString": "literal_string \"Only Signaturit or a validated account can perform this action\""
                        }
                      ],
                      "id": 6341,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7307,
                        7308
                      ],
                      "referencedDeclaration": 7308,
                      "src": "3453:7:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6345,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3453:123:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6346,
                  "nodeType": "ExpressionStatement",
                  "src": "3453:123:20"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 6352,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6347,
                      "name": "bytes32event",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6335,
                      "src": "3591:12:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 6350,
                          "name": "SIGNATURE_CREATED_EVENT",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6142,
                          "src": "3620:23:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 6348,
                          "name": "Utils",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7289,
                          "src": "3607:5:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Utils_$7289_$",
                            "typeString": "type(library Utils)"
                          }
                        },
                        "id": 6349,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "keccak",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7288,
                        "src": "3607:12:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (string memory) pure returns (bytes32)"
                        }
                      },
                      "id": 6351,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3607:37:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "3591:53:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 6363,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 6358,
                        "name": "bytes32event",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6335,
                        "src": "3708:12:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6361,
                            "name": "DOCUMENT_CREATED_EVENT",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6139,
                            "src": "3737:22:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_memory",
                              "typeString": "string memory"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 6359,
                            "name": "Utils",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7289,
                            "src": "3724:5:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_Utils_$7289_$",
                              "typeString": "type(library Utils)"
                            }
                          },
                          "id": 6360,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "keccak",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7288,
                          "src": "3724:12:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$",
                            "typeString": "function (string memory) pure returns (bytes32)"
                          }
                        },
                        "id": 6362,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3724:36:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "3708:52:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 6374,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 6369,
                          "name": "bytes32event",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6335,
                          "src": "3823:12:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6372,
                              "name": "FILE_CREATED_EVENT",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6130,
                              "src": "3852:18:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 6370,
                              "name": "Utils",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7289,
                              "src": "3839:5:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Utils_$7289_$",
                                "typeString": "type(library Utils)"
                              }
                            },
                            "id": 6371,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "keccak",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 7288,
                            "src": "3839:12:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (string memory) pure returns (bytes32)"
                            }
                          },
                          "id": 6373,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3839:32:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "3823:48:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 6385,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 6380,
                            "name": "bytes32event",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6335,
                            "src": "3930:12:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 6383,
                                "name": "EVENT_CREATED_EVENT",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6133,
                                "src": "3959:19:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory",
                                  "typeString": "string memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_string_memory",
                                  "typeString": "string memory"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 6381,
                                "name": "Utils",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7289,
                                "src": "3946:5:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Utils_$7289_$",
                                  "typeString": "type(library Utils)"
                                }
                              },
                              "id": 6382,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "keccak",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7288,
                              "src": "3946:12:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$",
                                "typeString": "function (string memory) pure returns (bytes32)"
                              }
                            },
                            "id": 6384,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3946:33:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "3930:49:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 6396,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 6391,
                              "name": "bytes32event",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6335,
                              "src": "4039:12:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 6394,
                                  "name": "CERTIFIED_FILE_CREATED_EVENT",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6151,
                                  "src": "4068:28:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory",
                                    "typeString": "string memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_string_memory",
                                    "typeString": "string memory"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 6392,
                                  "name": "Utils",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7289,
                                  "src": "4055:5:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_Utils_$7289_$",
                                    "typeString": "type(library Utils)"
                                  }
                                },
                                "id": 6393,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "keccak",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 7288,
                                "src": "4055:12:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$",
                                  "typeString": "function (string memory) pure returns (bytes32)"
                                }
                              },
                              "id": 6395,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "4055:42:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "src": "4039:58:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "condition": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              "id": 6407,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 6402,
                                "name": "bytes32event",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6335,
                                "src": "4165:12:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 6405,
                                    "name": "CERTIFIED_EMAIL_CREATED_EVENT",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6154,
                                    "src": "4194:29:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory",
                                      "typeString": "string memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_string_memory",
                                      "typeString": "string memory"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 6403,
                                    "name": "Utils",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7289,
                                    "src": "4181:5:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Utils_$7289_$",
                                      "typeString": "type(library Utils)"
                                    }
                                  },
                                  "id": 6404,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "keccak",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 7288,
                                  "src": "4181:12:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$",
                                    "typeString": "function (string memory) pure returns (bytes32)"
                                  }
                                },
                                "id": 6406,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4181:43:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "src": "4165:59:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 6418,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 6413,
                                  "name": "bytes32event",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6335,
                                  "src": "4293:12:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "==",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 6416,
                                      "name": "CERTIFICATE_CREATED_EVENT",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6148,
                                      "src": "4322:25:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory",
                                        "typeString": "string memory"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_string_memory",
                                        "typeString": "string memory"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 6414,
                                      "name": "Utils",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7289,
                                      "src": "4309:5:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_contract$_Utils_$7289_$",
                                        "typeString": "type(library Utils)"
                                      }
                                    },
                                    "id": 6415,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "keccak",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 7288,
                                    "src": "4309:12:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$",
                                      "typeString": "function (string memory) pure returns (bytes32)"
                                    }
                                  },
                                  "id": 6417,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "4309:39:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "4293:55:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": {
                                "condition": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 6429,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "id": 6424,
                                    "name": "bytes32event",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6335,
                                    "src": "4414:12:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "==",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "id": 6427,
                                        "name": "TIMELOG_ADDED_EVENT",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 6136,
                                        "src": "4443:19:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory",
                                          "typeString": "string memory"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_string_memory",
                                          "typeString": "string memory"
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 6425,
                                        "name": "Utils",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 7289,
                                        "src": "4430:5:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_contract$_Utils_$7289_$",
                                          "typeString": "type(library Utils)"
                                        }
                                      },
                                      "id": 6426,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "keccak",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 7288,
                                      "src": "4430:12:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$",
                                        "typeString": "function (string memory) pure returns (bytes32)"
                                      }
                                    },
                                    "id": 6428,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "4430:33:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "src": "4414:49:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "falseBody": {
                                  "condition": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 6440,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "id": 6435,
                                      "name": "bytes32event",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6335,
                                      "src": "4523:12:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "==",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "id": 6438,
                                          "name": "PAYMENT_CHECK_ADDED_EVENT",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6145,
                                          "src": "4552:25:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_string_memory",
                                            "typeString": "string memory"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_string_memory",
                                            "typeString": "string memory"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 6436,
                                          "name": "Utils",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 7289,
                                          "src": "4539:5:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_contract$_Utils_$7289_$",
                                            "typeString": "type(library Utils)"
                                          }
                                        },
                                        "id": 6437,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "keccak",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 7288,
                                        "src": "4539:12:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$",
                                          "typeString": "function (string memory) pure returns (bytes32)"
                                        }
                                      },
                                      "id": 6439,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "4539:39:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "src": "4523:55:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "falseBody": null,
                                  "id": 6446,
                                  "nodeType": "IfStatement",
                                  "src": "4519:114:20",
                                  "trueBody": {
                                    "id": 6445,
                                    "nodeType": "Block",
                                    "src": "4580:53:20",
                                    "statements": [
                                      {
                                        "eventCall": {
                                          "argumentTypes": null,
                                          "arguments": [
                                            {
                                              "argumentTypes": null,
                                              "id": 6442,
                                              "name": "addr",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 6331,
                                              "src": "4617:4:20",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                              }
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                              }
                                            ],
                                            "id": 6441,
                                            "name": "PaymentCheckAdded",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6220,
                                            "src": "4599:17:20",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                                              "typeString": "function (address)"
                                            }
                                          },
                                          "id": 6443,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "kind": "functionCall",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "4599:23:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                          }
                                        },
                                        "id": 6444,
                                        "nodeType": "EmitStatement",
                                        "src": "4594:28:20"
                                      }
                                    ]
                                  }
                                },
                                "id": 6447,
                                "nodeType": "IfStatement",
                                "src": "4410:223:20",
                                "trueBody": {
                                  "id": 6434,
                                  "nodeType": "Block",
                                  "src": "4465:48:20",
                                  "statements": [
                                    {
                                      "eventCall": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "id": 6431,
                                            "name": "addr",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6331,
                                            "src": "4497:4:20",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          ],
                                          "id": 6430,
                                          "name": "TimeLogAdded",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6216,
                                          "src": "4484:12:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                                            "typeString": "function (address)"
                                          }
                                        },
                                        "id": 6432,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "4484:18:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_tuple$__$",
                                          "typeString": "tuple()"
                                        }
                                      },
                                      "id": 6433,
                                      "nodeType": "EmitStatement",
                                      "src": "4479:23:20"
                                    }
                                  ]
                                }
                              },
                              "id": 6448,
                              "nodeType": "IfStatement",
                              "src": "4289:344:20",
                              "trueBody": {
                                "id": 6423,
                                "nodeType": "Block",
                                "src": "4350:54:20",
                                "statements": [
                                  {
                                    "eventCall": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "id": 6420,
                                          "name": "addr",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6331,
                                          "src": "4388:4:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                          }
                                        ],
                                        "id": 6419,
                                        "name": "CertificateCreated",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 6212,
                                        "src": "4369:18:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                                          "typeString": "function (address)"
                                        }
                                      },
                                      "id": 6421,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "4369:24:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_tuple$__$",
                                        "typeString": "tuple()"
                                      }
                                    },
                                    "id": 6422,
                                    "nodeType": "EmitStatement",
                                    "src": "4364:29:20"
                                  }
                                ]
                              }
                            },
                            "id": 6449,
                            "nodeType": "IfStatement",
                            "src": "4161:472:20",
                            "trueBody": {
                              "id": 6412,
                              "nodeType": "Block",
                              "src": "4226:57:20",
                              "statements": [
                                {
                                  "eventCall": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "id": 6409,
                                        "name": "addr",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 6331,
                                        "src": "4267:4:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      ],
                                      "id": 6408,
                                      "name": "CertifiedEmailCreated",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6208,
                                      "src": "4245:21:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                                        "typeString": "function (address)"
                                      }
                                    },
                                    "id": 6410,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "4245:27:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_tuple$__$",
                                      "typeString": "tuple()"
                                    }
                                  },
                                  "id": 6411,
                                  "nodeType": "EmitStatement",
                                  "src": "4240:32:20"
                                }
                              ]
                            }
                          },
                          "id": 6450,
                          "nodeType": "IfStatement",
                          "src": "4035:598:20",
                          "trueBody": {
                            "id": 6401,
                            "nodeType": "Block",
                            "src": "4099:56:20",
                            "statements": [
                              {
                                "eventCall": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 6398,
                                      "name": "addr",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6331,
                                      "src": "4139:4:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    ],
                                    "id": 6397,
                                    "name": "CertifiedFileCreated",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6204,
                                    "src": "4118:20:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                                      "typeString": "function (address)"
                                    }
                                  },
                                  "id": 6399,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "4118:26:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 6400,
                                "nodeType": "EmitStatement",
                                "src": "4113:31:20"
                              }
                            ]
                          }
                        },
                        "id": 6451,
                        "nodeType": "IfStatement",
                        "src": "3926:707:20",
                        "trueBody": {
                          "id": 6390,
                          "nodeType": "Block",
                          "src": "3981:48:20",
                          "statements": [
                            {
                              "eventCall": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 6387,
                                    "name": "addr",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6331,
                                    "src": "4013:4:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "id": 6386,
                                  "name": "EventCreated",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6200,
                                  "src": "4000:12:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                                    "typeString": "function (address)"
                                  }
                                },
                                "id": 6388,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4000:18:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 6389,
                              "nodeType": "EmitStatement",
                              "src": "3995:23:20"
                            }
                          ]
                        }
                      },
                      "id": 6452,
                      "nodeType": "IfStatement",
                      "src": "3819:814:20",
                      "trueBody": {
                        "id": 6379,
                        "nodeType": "Block",
                        "src": "3873:47:20",
                        "statements": [
                          {
                            "eventCall": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 6376,
                                  "name": "addr",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6331,
                                  "src": "3904:4:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 6375,
                                "name": "FileCreated",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6196,
                                "src": "3892:11:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                                  "typeString": "function (address)"
                                }
                              },
                              "id": 6377,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3892:17:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 6378,
                            "nodeType": "EmitStatement",
                            "src": "3887:22:20"
                          }
                        ]
                      }
                    },
                    "id": 6453,
                    "nodeType": "IfStatement",
                    "src": "3704:929:20",
                    "trueBody": {
                      "id": 6368,
                      "nodeType": "Block",
                      "src": "3762:51:20",
                      "statements": [
                        {
                          "eventCall": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 6365,
                                "name": "addr",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6331,
                                "src": "3797:4:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "id": 6364,
                              "name": "DocumentCreated",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6192,
                              "src": "3781:15:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                                "typeString": "function (address)"
                              }
                            },
                            "id": 6366,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3781:21:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 6367,
                          "nodeType": "EmitStatement",
                          "src": "3776:26:20"
                        }
                      ]
                    }
                  },
                  "id": 6454,
                  "nodeType": "IfStatement",
                  "src": "3587:1046:20",
                  "trueBody": {
                    "id": 6357,
                    "nodeType": "Block",
                    "src": "3646:52:20",
                    "statements": [
                      {
                        "eventCall": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6354,
                              "name": "addr",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6331,
                              "src": "3682:4:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 6353,
                            "name": "SignatureCreated",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6188,
                            "src": "3665:16:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                              "typeString": "function (address)"
                            }
                          },
                          "id": 6355,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3665:22:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6356,
                        "nodeType": "EmitStatement",
                        "src": "3660:27:20"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 6456,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "notify",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6332,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6329,
                  "name": "eventType",
                  "nodeType": "VariableDeclaration",
                  "scope": 6456,
                  "src": "3315:23:20",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 6328,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3315:6:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6331,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 6456,
                  "src": "3348:12:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6330,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3348:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3305:61:20"
            },
            "returnParameters": {
              "id": 6333,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3386:0:20"
            },
            "scope": 6521,
            "src": "3289:1350:20",
            "stateMutability": "nonpayable",
            "superFunction": 6926,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6519,
              "nodeType": "Block",
              "src": "4696:601:20",
              "statements": [
                {
                  "assignments": [
                    6462
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6462,
                      "name": "checkedAddress",
                      "nodeType": "VariableDeclaration",
                      "scope": 6519,
                      "src": "4706:22:20",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 6461,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "4706:7:20",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6463,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4706:22:20"
                },
                {
                  "assignments": [
                    6465
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6465,
                      "name": "notificationIndex",
                      "nodeType": "VariableDeclaration",
                      "scope": 6519,
                      "src": "4738:22:20",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6464,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "4738:4:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6467,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 6466,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "4763:1:20",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4738:26:20"
                },
                {
                  "assignments": [
                    6469
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6469,
                      "name": "result",
                      "nodeType": "VariableDeclaration",
                      "scope": 6519,
                      "src": "4774:11:20",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 6468,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "4774:4:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6471,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "66616c7365",
                    "id": 6470,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "4788:5:20",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "false"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4774:19:20"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 6475,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 6472,
                        "name": "tx",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7316,
                        "src": "4808:2:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_transaction",
                          "typeString": "tx"
                        }
                      },
                      "id": 6473,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "origin",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "4808:9:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 6474,
                      "name": "signaturit",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6122,
                      "src": "4821:10:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "4808:23:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 6515,
                    "nodeType": "Block",
                    "src": "4878:389:20",
                    "statements": [
                      {
                        "body": {
                          "id": 6508,
                          "nodeType": "Block",
                          "src": "4895:324:20",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6487,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 6481,
                                  "name": "checkedAddress",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6462,
                                  "src": "4913:14:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 6484,
                                      "name": "VALIDATED_NOTIFIERS_KEY",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6184,
                                      "src": "4968:23:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory",
                                        "typeString": "string memory"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 6485,
                                      "name": "notificationIndex",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6465,
                                      "src": "4993:17:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_string_memory",
                                        "typeString": "string memory"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 6482,
                                      "name": "userContract",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6124,
                                      "src": "4930:12:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_SignaturitUserInterface_$7251",
                                        "typeString": "contract SignaturitUserInterface"
                                      }
                                    },
                                    "id": 6483,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "getAddressArrayAttribute",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 7220,
                                    "src": "4930:37:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$_t_uint256_$returns$_t_address_$",
                                      "typeString": "function (string memory,uint256) view external returns (address)"
                                    }
                                  },
                                  "id": 6486,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "4930:81:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "src": "4913:98:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 6488,
                              "nodeType": "ExpressionStatement",
                              "src": "4913:98:20"
                            },
                            {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                "id": 6492,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 6489,
                                  "name": "checkedAddress",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6462,
                                  "src": "5034:14:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "==",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 6490,
                                    "name": "tx",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7316,
                                    "src": "5052:2:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_transaction",
                                      "typeString": "tx"
                                    }
                                  },
                                  "id": 6491,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "origin",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "5052:9:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address_payable",
                                    "typeString": "address payable"
                                  }
                                },
                                "src": "5034:27:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": null,
                              "id": 6504,
                              "nodeType": "IfStatement",
                              "src": "5030:137:20",
                              "trueBody": {
                                "id": 6503,
                                "nodeType": "Block",
                                "src": "5063:104:20",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 6495,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "id": 6493,
                                        "name": "result",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 6469,
                                        "src": "5085:6:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "hexValue": "74727565",
                                        "id": 6494,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "bool",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "5094:4:20",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        },
                                        "value": "true"
                                      },
                                      "src": "5085:13:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "id": 6496,
                                    "nodeType": "ExpressionStatement",
                                    "src": "5085:13:20"
                                  },
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 6501,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "id": 6497,
                                        "name": "checkedAddress",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 6462,
                                        "src": "5121:14:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "hexValue": "30",
                                            "id": 6499,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "5146:1:20",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_0_by_1",
                                              "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_0_by_1",
                                              "typeString": "int_const 0"
                                            }
                                          ],
                                          "id": 6498,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "5138:7:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_address_$",
                                            "typeString": "type(address)"
                                          },
                                          "typeName": "address"
                                        },
                                        "id": 6500,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "5138:10:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address_payable",
                                          "typeString": "address payable"
                                        }
                                      },
                                      "src": "5121:27:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    "id": 6502,
                                    "nodeType": "ExpressionStatement",
                                    "src": "5121:27:20"
                                  }
                                ]
                              }
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6506,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "++",
                                "prefix": true,
                                "src": "5185:19:20",
                                "subExpression": {
                                  "argumentTypes": null,
                                  "id": 6505,
                                  "name": "notificationIndex",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6465,
                                  "src": "5187:17:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6507,
                              "nodeType": "ExpressionStatement",
                              "src": "5185:19:20"
                            }
                          ]
                        },
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 6513,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 6509,
                            "name": "checkedAddress",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6462,
                            "src": "5227:14:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 6511,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "5253:1:20",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 6510,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "5245:7:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 6512,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5245:10:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "5227:28:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 6514,
                        "nodeType": "DoWhileStatement",
                        "src": "4892:365:20"
                      }
                    ]
                  },
                  "id": 6516,
                  "nodeType": "IfStatement",
                  "src": "4804:463:20",
                  "trueBody": {
                    "id": 6480,
                    "nodeType": "Block",
                    "src": "4833:39:20",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6478,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 6476,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6469,
                            "src": "4847:6:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "74727565",
                            "id": 6477,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4856:4:20",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "src": "4847:13:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 6479,
                        "nodeType": "ExpressionStatement",
                        "src": "4847:13:20"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 6517,
                    "name": "result",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6469,
                    "src": "5284:6:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 6460,
                  "id": 6518,
                  "nodeType": "Return",
                  "src": "5277:13:20"
                }
              ]
            },
            "documentation": null,
            "id": 6520,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "validAddress",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6457,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4666:2:20"
            },
            "returnParameters": {
              "id": 6460,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6459,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6520,
                  "src": "4691:4:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6458,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4691:4:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4690:6:20"
            },
            "scope": 6521,
            "src": "4645:652:20",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          }
        ],
        "scope": 6522,
        "src": "187:5112:20"
      }
    ],
    "src": "0:5299:20"
  },
  "legacyAST": {
    "absolutePath": "/home/administrator/workspace/signaturit-solidity-contracts/contracts/UserEvents.sol",
    "exportedSymbols": {
      "UserEvents": [
        6521
      ]
    },
    "id": 6522,
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 6115,
        "literals": [
          "solidity",
          "<",
          "0.6",
          ".0"
        ],
        "nodeType": "PragmaDirective",
        "src": "0:23:20"
      },
      {
        "absolutePath": "/home/administrator/workspace/signaturit-solidity-contracts/contracts/interfaces/NotifierInterface.sol",
        "file": "./interfaces/NotifierInterface.sol",
        "id": 6116,
        "nodeType": "ImportDirective",
        "scope": 6522,
        "sourceUnit": 6928,
        "src": "57:44:20",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/administrator/workspace/signaturit-solidity-contracts/contracts/interfaces/SignaturitUserInterface.sol",
        "file": "./interfaces/SignaturitUserInterface.sol",
        "id": 6117,
        "nodeType": "ImportDirective",
        "scope": 6522,
        "sourceUnit": 7252,
        "src": "102:50:20",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/administrator/workspace/signaturit-solidity-contracts/contracts/libraries/Utils.sol",
        "file": "./libraries/Utils.sol",
        "id": 6118,
        "nodeType": "ImportDirective",
        "scope": 6522,
        "sourceUnit": 7290,
        "src": "154:31:20",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "baseContracts": [
          {
            "arguments": null,
            "baseName": {
              "contractScope": null,
              "id": 6119,
              "name": "NotifierInterface",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 6927,
              "src": "210:17:20",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_NotifierInterface_$6927",
                "typeString": "contract NotifierInterface"
              }
            },
            "id": 6120,
            "nodeType": "InheritanceSpecifier",
            "src": "210:17:20"
          }
        ],
        "contractDependencies": [
          6927
        ],
        "contractKind": "contract",
        "documentation": null,
        "fullyImplemented": true,
        "id": 6521,
        "linearizedBaseContracts": [
          6521,
          6927
        ],
        "name": "UserEvents",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": false,
            "id": 6122,
            "name": "signaturit",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "234:25:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 6121,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "234:7:20",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 6124,
            "name": "userContract",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "266:43:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_SignaturitUserInterface_$7251",
              "typeString": "contract SignaturitUserInterface"
            },
            "typeName": {
              "contractScope": null,
              "id": 6123,
              "name": "SignaturitUserInterface",
              "nodeType": "UserDefinedTypeName",
              "referencedDeclaration": 7251,
              "src": "266:23:20",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_SignaturitUserInterface_$7251",
                "typeString": "contract SignaturitUserInterface"
              }
            },
            "value": null,
            "visibility": "public"
          },
          {
            "constant": true,
            "id": 6127,
            "name": "USER_EVENTS",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "316:51:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6125,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "316:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "757365725f6576656e7473",
              "id": 6126,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "354:13:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_fa95deefbb23760d542ec014fce37f325a25019eeabc11d913751fd29ff072b3",
                "typeString": "literal_string \"user_events\""
              },
              "value": "user_events"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6130,
            "name": "FILE_CREATED_EVENT",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "374:68:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6128,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "374:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "66696c652e636f6e74726163742e63726561746564",
              "id": 6129,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "419:23:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_2233a27e702ee6162cc2e308200369bccc6b94a4aee0e31589d2f43a31c28a19",
                "typeString": "literal_string \"file.contract.created\""
              },
              "value": "file.contract.created"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6133,
            "name": "EVENT_CREATED_EVENT",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "448:70:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6131,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "448:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "6576656e742e636f6e74726163742e63726561746564",
              "id": 6132,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "494:24:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_940d087e88f9b637f99eb8adf4909f7a72371a7de914372d49d6ef145f5d420a",
                "typeString": "literal_string \"event.contract.created\""
              },
              "value": "event.contract.created"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6136,
            "name": "TIMELOG_ADDED_EVENT",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "524:61:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6134,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "524:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "74696d656c6f672e6164646564",
              "id": 6135,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "570:15:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_48c0c01ceb3a6df8c49c8f86f60c6aa590f2d31ad89fa7b7e763dd9839820768",
                "typeString": "literal_string \"timelog.added\""
              },
              "value": "timelog.added"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6139,
            "name": "DOCUMENT_CREATED_EVENT",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "591:76:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6137,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "591:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "646f63756d656e742e636f6e74726163742e63726561746564",
              "id": 6138,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "640:27:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_cf7018f27b4f1c9203d649679ba3bf8e0acd989de189f14a3ecc0f834baee2ad",
                "typeString": "literal_string \"document.contract.created\""
              },
              "value": "document.contract.created"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6142,
            "name": "SIGNATURE_CREATED_EVENT",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "673:78:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6140,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "673:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "7369676e61747572652e636f6e74726163742e63726561746564",
              "id": 6141,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "723:28:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_3c84dd064979bbdb715484653bafe8622e8a568c4ab0aeaa9d5d3f68f5a44beb",
                "typeString": "literal_string \"signature.contract.created\""
              },
              "value": "signature.contract.created"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6145,
            "name": "PAYMENT_CHECK_ADDED_EVENT",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "757:73:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6143,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "757:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "7061796d656e745f636865636b2e6164646564",
              "id": 6144,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "809:21:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_2889ca0639ae00927f6713561bf60d7d68ca787d04db32b09ccc9d57f1c70036",
                "typeString": "literal_string \"payment_check.added\""
              },
              "value": "payment_check.added"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6148,
            "name": "CERTIFICATE_CREATED_EVENT",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "836:82:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6146,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "836:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "63657274696669636174652e636f6e74726163742e63726561746564",
              "id": 6147,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "888:30:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_60f55e549ede8476eef03c6c242f3f428cb14f442cf41e08e5091b8acc5bd485",
                "typeString": "literal_string \"certificate.contract.created\""
              },
              "value": "certificate.contract.created"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6151,
            "name": "CERTIFIED_FILE_CREATED_EVENT",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "924:88:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6149,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "924:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "6365727469666965645f66696c652e636f6e74726163742e63726561746564",
              "id": 6150,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "979:33:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_6ea586b01b93169892b084e656c4efd004082d61c22d49fa7046dacfea77c0c8",
                "typeString": "literal_string \"certified_file.contract.created\""
              },
              "value": "certified_file.contract.created"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6154,
            "name": "CERTIFIED_EMAIL_CREATED_EVENT",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "1018:90:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6152,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1018:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "6365727469666965645f656d61696c2e636f6e74726163742e63726561746564",
              "id": 6153,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1074:34:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_ae5b77f70831a789b8fd4a912091a91a55780b1a05636a18add16c7002080c26",
                "typeString": "literal_string \"certified_email.contract.created\""
              },
              "value": "certified_email.contract.created"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6157,
            "name": "FILE_NOTIFIERS_KEY",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "1115:61:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6155,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1115:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "66696c652d6e6f74696669657273",
              "id": 6156,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1160:16:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_564d80aba11e51a3eff777d482df81c48f4da2423384618e7be1ee86ad1bfee6",
                "typeString": "literal_string \"file-notifiers\""
              },
              "value": "file-notifiers"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6160,
            "name": "EVENT_NOTIFIERS_KEY",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "1182:63:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6158,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1182:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "6576656e742d6e6f74696669657273",
              "id": 6159,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1228:17:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_b25bd55d22992cd8575c70596ff0d0e7a67a2b59c4214f4f8859fdd431ce46f0",
                "typeString": "literal_string \"event-notifiers\""
              },
              "value": "event-notifiers"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6163,
            "name": "DOCUMENT_NOTIFIERS_KEY",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "1251:69:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6161,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1251:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "646f63756d656e742d6e6f74696669657273",
              "id": 6162,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1300:20:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_7d28b4fa182b49d585cf0be720ed320f87b6af7199ef0f994429e1aa22d0664d",
                "typeString": "literal_string \"document-notifiers\""
              },
              "value": "document-notifiers"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6166,
            "name": "SIGNATURE_NOTIFIERS_KEY",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "1326:71:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6164,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1326:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "7369676e61747572652d6e6f74696669657273",
              "id": 6165,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1376:21:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_3b317d4221d274688226013f55affecc0f5c09cf980dc6d9578c6a596721f3cf",
                "typeString": "literal_string \"signature-notifiers\""
              },
              "value": "signature-notifiers"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6169,
            "name": "TIMELOGGER_NOTIFIERS_KEY",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "1403:80:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6167,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1403:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "74696d656c6f676765722d636c617573652d6e6f74696669657273",
              "id": 6168,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1454:29:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_fa90fc167f644237810e25c760daede8ce998a6a3d1edcc9e1ea94b66fdbfb3d",
                "typeString": "literal_string \"timelogger-clause-notifiers\""
              },
              "value": "timelogger-clause-notifiers"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6172,
            "name": "CERTIFICATE_NOTIFIERS_KEY",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "1489:75:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6170,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1489:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "63657274696669636174652d6e6f74696669657273",
              "id": 6171,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1541:23:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_e9de243ad0d1c8f5caa2f997b8265730fa86b037e7af2461b0b6837c6e81fe66",
                "typeString": "literal_string \"certificate-notifiers\""
              },
              "value": "certificate-notifiers"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6175,
            "name": "PAYMENT_CHECKS_NOTIFIERS_KEY",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "1570:81:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6173,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1570:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "7061796d656e742d636c617573652d6e6f74696669657273",
              "id": 6174,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1625:26:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_757e3c91c30725599892de8769997ed1c7b74e26fe73637ce24a95ccb40bd258",
                "typeString": "literal_string \"payment-clause-notifiers\""
              },
              "value": "payment-clause-notifiers"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6178,
            "name": "CERTIFIED_FILE_NOTIFIERS_KEY",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "1657:81:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6176,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1657:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "6365727469666965642d66696c652d6e6f74696669657273",
              "id": 6177,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1712:26:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_4c035f1ebcfc258c72fa01905bcc3cb43341138bfce84b3d302a119952191b84",
                "typeString": "literal_string \"certified-file-notifiers\""
              },
              "value": "certified-file-notifiers"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6181,
            "name": "CERTIFIED_EMAIL_NOTIFIERS_KEY",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "1744:83:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6179,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1744:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "6365727469666965642d656d61696c2d6e6f74696669657273",
              "id": 6180,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1800:27:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_34af7359cfbe393aa940dd768d8b69e9f608525971e6ac17a87116d8bbdb6179",
                "typeString": "literal_string \"certified-email-notifiers\""
              },
              "value": "certified-email-notifiers"
            },
            "visibility": "private"
          },
          {
            "constant": true,
            "id": 6184,
            "name": "VALIDATED_NOTIFIERS_KEY",
            "nodeType": "VariableDeclaration",
            "scope": 6521,
            "src": "1834:71:20",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory",
              "typeString": "string"
            },
            "typeName": {
              "id": 6182,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "1834:6:20",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "argumentTypes": null,
              "hexValue": "76616c6964617465642d6e6f74696669657273",
              "id": 6183,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "1884:21:20",
              "subdenomination": null,
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_d0687944729cecf6c2b04577399c9af282ff4f7920febb6045e3d57f275ed547",
                "typeString": "literal_string \"validated-notifiers\""
              },
              "value": "validated-notifiers"
            },
            "visibility": "private"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 6188,
            "name": "SignatureCreated",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 6187,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6186,
                  "indexed": false,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6188,
                  "src": "1935:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6185,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1935:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1934:9:20"
            },
            "src": "1912:32:20"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 6192,
            "name": "DocumentCreated",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 6191,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6190,
                  "indexed": false,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6192,
                  "src": "1971:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6189,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1971:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "1970:9:20"
            },
            "src": "1949:31:20"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 6196,
            "name": "FileCreated",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 6195,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6194,
                  "indexed": false,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6196,
                  "src": "2003:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6193,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2003:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2002:9:20"
            },
            "src": "1985:27:20"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 6200,
            "name": "EventCreated",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 6199,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6198,
                  "indexed": false,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6200,
                  "src": "2036:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6197,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2036:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2035:9:20"
            },
            "src": "2017:28:20"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 6204,
            "name": "CertifiedFileCreated",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 6203,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6202,
                  "indexed": false,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6204,
                  "src": "2077:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6201,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2077:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2076:9:20"
            },
            "src": "2050:36:20"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 6208,
            "name": "CertifiedEmailCreated",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 6207,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6206,
                  "indexed": false,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6208,
                  "src": "2119:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6205,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2119:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2118:9:20"
            },
            "src": "2091:37:20"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 6212,
            "name": "CertificateCreated",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 6211,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6210,
                  "indexed": false,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6212,
                  "src": "2158:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6209,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2158:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2157:9:20"
            },
            "src": "2133:34:20"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 6216,
            "name": "TimeLogAdded",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 6215,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6214,
                  "indexed": false,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6216,
                  "src": "2191:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6213,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2191:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2190:9:20"
            },
            "src": "2172:28:20"
          },
          {
            "anonymous": false,
            "documentation": null,
            "id": 6220,
            "name": "PaymentCheckAdded",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 6219,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6218,
                  "indexed": false,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6220,
                  "src": "2229:7:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6217,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2229:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2228:9:20"
            },
            "src": "2205:33:20"
          },
          {
            "body": {
              "id": 6326,
              "nodeType": "Block",
              "src": "2314:969:20",
              "statements": [
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 6228,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 6225,
                      "name": "signaturit",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6122,
                      "src": "2324:10:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 6226,
                        "name": "msg",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7304,
                        "src": "2337:3:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_message",
                          "typeString": "msg"
                        }
                      },
                      "id": 6227,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "sender",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "2337:10:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "src": "2324:23:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 6229,
                  "nodeType": "ExpressionStatement",
                  "src": "2324:23:20"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 6234,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "argumentTypes": null,
                      "id": 6230,
                      "name": "userContract",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6124,
                      "src": "2358:12:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_SignaturitUserInterface_$7251",
                        "typeString": "contract SignaturitUserInterface"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 6232,
                          "name": "signaturitUser",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6222,
                          "src": "2397:14:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 6231,
                        "name": "SignaturitUserInterface",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7251,
                        "src": "2373:23:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_SignaturitUserInterface_$7251_$",
                          "typeString": "type(contract SignaturitUserInterface)"
                        }
                      },
                      "id": 6233,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2373:39:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_SignaturitUserInterface_$7251",
                        "typeString": "contract SignaturitUserInterface"
                      }
                    },
                    "src": "2358:54:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_SignaturitUserInterface_$7251",
                      "typeString": "contract SignaturitUserInterface"
                    }
                  },
                  "id": 6235,
                  "nodeType": "ExpressionStatement",
                  "src": "2358:54:20"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6239,
                        "name": "USER_EVENTS",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6127,
                        "src": "2456:11:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6241,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7379,
                            "src": "2477:4:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          ],
                          "id": 6240,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2469:7:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 6242,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2469:13:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 6236,
                        "name": "userContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6124,
                        "src": "2423:12:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SignaturitUserInterface_$7251",
                          "typeString": "contract SignaturitUserInterface"
                        }
                      },
                      "id": 6238,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setAddressAttribute",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7197,
                      "src": "2423:32:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_address_$returns$__$",
                        "typeString": "function (string memory,address) external"
                      }
                    },
                    "id": 6243,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2423:60:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6244,
                  "nodeType": "ExpressionStatement",
                  "src": "2423:60:20"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6248,
                        "name": "FILE_NOTIFIERS_KEY",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6157,
                        "src": "2532:18:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6250,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7379,
                            "src": "2560:4:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          ],
                          "id": 6249,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2552:7:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 6251,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2552:13:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 6245,
                        "name": "userContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6124,
                        "src": "2494:12:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SignaturitUserInterface_$7251",
                          "typeString": "contract SignaturitUserInterface"
                        }
                      },
                      "id": 6247,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setAddressArrayAttribute",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7211,
                      "src": "2494:37:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_address_$returns$__$",
                        "typeString": "function (string memory,address) external"
                      }
                    },
                    "id": 6252,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2494:72:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6253,
                  "nodeType": "ExpressionStatement",
                  "src": "2494:72:20"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6257,
                        "name": "EVENT_NOTIFIERS_KEY",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6160,
                        "src": "2614:19:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6259,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7379,
                            "src": "2643:4:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          ],
                          "id": 6258,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2635:7:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 6260,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2635:13:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 6254,
                        "name": "userContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6124,
                        "src": "2576:12:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SignaturitUserInterface_$7251",
                          "typeString": "contract SignaturitUserInterface"
                        }
                      },
                      "id": 6256,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setAddressArrayAttribute",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7211,
                      "src": "2576:37:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_address_$returns$__$",
                        "typeString": "function (string memory,address) external"
                      }
                    },
                    "id": 6261,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2576:73:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6262,
                  "nodeType": "ExpressionStatement",
                  "src": "2576:73:20"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6266,
                        "name": "DOCUMENT_NOTIFIERS_KEY",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6163,
                        "src": "2697:22:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6268,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7379,
                            "src": "2729:4:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          ],
                          "id": 6267,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2721:7:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 6269,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2721:13:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 6263,
                        "name": "userContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6124,
                        "src": "2659:12:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SignaturitUserInterface_$7251",
                          "typeString": "contract SignaturitUserInterface"
                        }
                      },
                      "id": 6265,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setAddressArrayAttribute",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7211,
                      "src": "2659:37:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_address_$returns$__$",
                        "typeString": "function (string memory,address) external"
                      }
                    },
                    "id": 6270,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2659:76:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6271,
                  "nodeType": "ExpressionStatement",
                  "src": "2659:76:20"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6275,
                        "name": "SIGNATURE_NOTIFIERS_KEY",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6166,
                        "src": "2783:23:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6277,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7379,
                            "src": "2816:4:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          ],
                          "id": 6276,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2808:7:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 6278,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2808:13:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 6272,
                        "name": "userContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6124,
                        "src": "2745:12:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SignaturitUserInterface_$7251",
                          "typeString": "contract SignaturitUserInterface"
                        }
                      },
                      "id": 6274,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setAddressArrayAttribute",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7211,
                      "src": "2745:37:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_address_$returns$__$",
                        "typeString": "function (string memory,address) external"
                      }
                    },
                    "id": 6279,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2745:77:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6280,
                  "nodeType": "ExpressionStatement",
                  "src": "2745:77:20"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6284,
                        "name": "TIMELOGGER_NOTIFIERS_KEY",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6169,
                        "src": "2870:24:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6286,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7379,
                            "src": "2904:4:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          ],
                          "id": 6285,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2896:7:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 6287,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2896:13:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 6281,
                        "name": "userContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6124,
                        "src": "2832:12:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SignaturitUserInterface_$7251",
                          "typeString": "contract SignaturitUserInterface"
                        }
                      },
                      "id": 6283,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setAddressArrayAttribute",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7211,
                      "src": "2832:37:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_address_$returns$__$",
                        "typeString": "function (string memory,address) external"
                      }
                    },
                    "id": 6288,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2832:78:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6289,
                  "nodeType": "ExpressionStatement",
                  "src": "2832:78:20"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6293,
                        "name": "CERTIFICATE_NOTIFIERS_KEY",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6172,
                        "src": "2958:25:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6295,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7379,
                            "src": "2993:4:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          ],
                          "id": 6294,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "2985:7:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 6296,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "2985:13:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 6290,
                        "name": "userContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6124,
                        "src": "2920:12:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SignaturitUserInterface_$7251",
                          "typeString": "contract SignaturitUserInterface"
                        }
                      },
                      "id": 6292,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setAddressArrayAttribute",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7211,
                      "src": "2920:37:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_address_$returns$__$",
                        "typeString": "function (string memory,address) external"
                      }
                    },
                    "id": 6297,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2920:79:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6298,
                  "nodeType": "ExpressionStatement",
                  "src": "2920:79:20"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6302,
                        "name": "CERTIFIED_FILE_NOTIFIERS_KEY",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6178,
                        "src": "3047:28:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6304,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7379,
                            "src": "3085:4:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          ],
                          "id": 6303,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "3077:7:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 6305,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3077:13:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 6299,
                        "name": "userContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6124,
                        "src": "3009:12:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SignaturitUserInterface_$7251",
                          "typeString": "contract SignaturitUserInterface"
                        }
                      },
                      "id": 6301,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setAddressArrayAttribute",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7211,
                      "src": "3009:37:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_address_$returns$__$",
                        "typeString": "function (string memory,address) external"
                      }
                    },
                    "id": 6306,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3009:82:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6307,
                  "nodeType": "ExpressionStatement",
                  "src": "3009:82:20"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6311,
                        "name": "PAYMENT_CHECKS_NOTIFIERS_KEY",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6175,
                        "src": "3139:28:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6313,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7379,
                            "src": "3177:4:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          ],
                          "id": 6312,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "3169:7:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 6314,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3169:13:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 6308,
                        "name": "userContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6124,
                        "src": "3101:12:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SignaturitUserInterface_$7251",
                          "typeString": "contract SignaturitUserInterface"
                        }
                      },
                      "id": 6310,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setAddressArrayAttribute",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7211,
                      "src": "3101:37:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_address_$returns$__$",
                        "typeString": "function (string memory,address) external"
                      }
                    },
                    "id": 6315,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3101:82:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6316,
                  "nodeType": "ExpressionStatement",
                  "src": "3101:82:20"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6320,
                        "name": "CERTIFIED_EMAIL_NOTIFIERS_KEY",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6181,
                        "src": "3231:29:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6322,
                            "name": "this",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7379,
                            "src": "3270:4:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_contract$_UserEvents_$6521",
                              "typeString": "contract UserEvents"
                            }
                          ],
                          "id": 6321,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "lValueRequested": false,
                          "nodeType": "ElementaryTypeNameExpression",
                          "src": "3262:7:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_address_$",
                            "typeString": "type(address)"
                          },
                          "typeName": "address"
                        },
                        "id": 6323,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "typeConversion",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3262:13:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory",
                          "typeString": "string memory"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 6317,
                        "name": "userContract",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6124,
                        "src": "3193:12:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_SignaturitUserInterface_$7251",
                          "typeString": "contract SignaturitUserInterface"
                        }
                      },
                      "id": 6319,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setAddressArrayAttribute",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7211,
                      "src": "3193:37:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_string_memory_ptr_$_t_address_$returns$__$",
                        "typeString": "function (string memory,address) external"
                      }
                    },
                    "id": 6324,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3193:83:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6325,
                  "nodeType": "ExpressionStatement",
                  "src": "3193:83:20"
                }
              ]
            },
            "documentation": null,
            "id": 6327,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [],
            "name": "",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6223,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6222,
                  "name": "signaturitUser",
                  "nodeType": "VariableDeclaration",
                  "scope": 6327,
                  "src": "2266:22:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6221,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "2266:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "2256:38:20"
            },
            "returnParameters": {
              "id": 6224,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2314:0:20"
            },
            "scope": 6521,
            "src": "2244:1039:20",
            "stateMutability": "nonpayable",
            "superFunction": null,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6455,
              "nodeType": "Block",
              "src": "3386:1253:20",
              "statements": [
                {
                  "assignments": [
                    6335
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6335,
                      "name": "bytes32event",
                      "nodeType": "VariableDeclaration",
                      "scope": 6455,
                      "src": "3396:20:20",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "typeName": {
                        "id": 6334,
                        "name": "bytes32",
                        "nodeType": "ElementaryTypeName",
                        "src": "3396:7:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6340,
                  "initialValue": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "id": 6338,
                        "name": "eventType",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6329,
                        "src": "3432:9:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_string_memory_ptr",
                          "typeString": "string memory"
                        }
                      ],
                      "expression": {
                        "argumentTypes": null,
                        "id": 6336,
                        "name": "Utils",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7289,
                        "src": "3419:5:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_Utils_$7289_$",
                          "typeString": "type(library Utils)"
                        }
                      },
                      "id": 6337,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "keccak",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7288,
                      "src": "3419:12:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$",
                        "typeString": "function (string memory) pure returns (bytes32)"
                      }
                    },
                    "id": 6339,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3419:23:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "3396:46:20"
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "arguments": [
                      {
                        "argumentTypes": null,
                        "arguments": [],
                        "expression": {
                          "argumentTypes": [],
                          "id": 6342,
                          "name": "validAddress",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6520,
                          "src": "3474:12:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_view$__$returns$_t_bool_$",
                            "typeString": "function () view returns (bool)"
                          }
                        },
                        "id": 6343,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3474:14:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "argumentTypes": null,
                        "hexValue": "4f6e6c79205369676e617475726974206f7220612076616c696461746564206163636f756e742063616e20706572666f726d207468697320616374696f6e",
                        "id": 6344,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "3502:64:20",
                        "subdenomination": null,
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_7703bb306b638efa26cf75d92098d2c2ebab906395f2a26342f7d63cde8f55c2",
                          "typeString": "literal_string \"Only Signaturit or a validated account can perform this action\""
                        },
                        "value": "Only Signaturit or a validated account can perform this action"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_7703bb306b638efa26cf75d92098d2c2ebab906395f2a26342f7d63cde8f55c2",
                          "typeString": "literal_string \"Only Signaturit or a validated account can perform this action\""
                        }
                      ],
                      "id": 6341,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        7307,
                        7308
                      ],
                      "referencedDeclaration": 7308,
                      "src": "3453:7:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6345,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3453:123:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6346,
                  "nodeType": "ExpressionStatement",
                  "src": "3453:123:20"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    },
                    "id": 6352,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "id": 6347,
                      "name": "bytes32event",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6335,
                      "src": "3591:12:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "arguments": [
                        {
                          "argumentTypes": null,
                          "id": 6350,
                          "name": "SIGNATURE_CREATED_EVENT",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6142,
                          "src": "3620:23:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_string_memory",
                            "typeString": "string memory"
                          }
                        ],
                        "expression": {
                          "argumentTypes": null,
                          "id": 6348,
                          "name": "Utils",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 7289,
                          "src": "3607:5:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_type$_t_contract$_Utils_$7289_$",
                            "typeString": "type(library Utils)"
                          }
                        },
                        "id": 6349,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "keccak",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7288,
                        "src": "3607:12:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$",
                          "typeString": "function (string memory) pure returns (bytes32)"
                        }
                      },
                      "id": 6351,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3607:37:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      }
                    },
                    "src": "3591:53:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "condition": {
                      "argumentTypes": null,
                      "commonType": {
                        "typeIdentifier": "t_bytes32",
                        "typeString": "bytes32"
                      },
                      "id": 6363,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "leftExpression": {
                        "argumentTypes": null,
                        "id": 6358,
                        "name": "bytes32event",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6335,
                        "src": "3708:12:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "nodeType": "BinaryOperation",
                      "operator": "==",
                      "rightExpression": {
                        "argumentTypes": null,
                        "arguments": [
                          {
                            "argumentTypes": null,
                            "id": 6361,
                            "name": "DOCUMENT_CREATED_EVENT",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6139,
                            "src": "3737:22:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_string_memory",
                              "typeString": "string memory"
                            }
                          }
                        ],
                        "expression": {
                          "argumentTypes": [
                            {
                              "typeIdentifier": "t_string_memory",
                              "typeString": "string memory"
                            }
                          ],
                          "expression": {
                            "argumentTypes": null,
                            "id": 6359,
                            "name": "Utils",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 7289,
                            "src": "3724:5:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_contract$_Utils_$7289_$",
                              "typeString": "type(library Utils)"
                            }
                          },
                          "id": 6360,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "keccak",
                          "nodeType": "MemberAccess",
                          "referencedDeclaration": 7288,
                          "src": "3724:12:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$",
                            "typeString": "function (string memory) pure returns (bytes32)"
                          }
                        },
                        "id": 6362,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "kind": "functionCall",
                        "lValueRequested": false,
                        "names": [],
                        "nodeType": "FunctionCall",
                        "src": "3724:36:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      "src": "3708:52:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "falseBody": {
                      "condition": {
                        "argumentTypes": null,
                        "commonType": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        "id": 6374,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "argumentTypes": null,
                          "id": 6369,
                          "name": "bytes32event",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6335,
                          "src": "3823:12:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6372,
                              "name": "FILE_CREATED_EVENT",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6130,
                              "src": "3852:18:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_string_memory",
                                "typeString": "string memory"
                              }
                            ],
                            "expression": {
                              "argumentTypes": null,
                              "id": 6370,
                              "name": "Utils",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 7289,
                              "src": "3839:5:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_contract$_Utils_$7289_$",
                                "typeString": "type(library Utils)"
                              }
                            },
                            "id": 6371,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "keccak",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 7288,
                            "src": "3839:12:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$",
                              "typeString": "function (string memory) pure returns (bytes32)"
                            }
                          },
                          "id": 6373,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3839:32:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        "src": "3823:48:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "falseBody": {
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          "id": 6385,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 6380,
                            "name": "bytes32event",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6335,
                            "src": "3930:12:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "==",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 6383,
                                "name": "EVENT_CREATED_EVENT",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6133,
                                "src": "3959:19:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_string_memory",
                                  "typeString": "string memory"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_string_memory",
                                  "typeString": "string memory"
                                }
                              ],
                              "expression": {
                                "argumentTypes": null,
                                "id": 6381,
                                "name": "Utils",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 7289,
                                "src": "3946:5:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_type$_t_contract$_Utils_$7289_$",
                                  "typeString": "type(library Utils)"
                                }
                              },
                              "id": 6382,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "memberName": "keccak",
                              "nodeType": "MemberAccess",
                              "referencedDeclaration": 7288,
                              "src": "3946:12:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$",
                                "typeString": "function (string memory) pure returns (bytes32)"
                              }
                            },
                            "id": 6384,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3946:33:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            }
                          },
                          "src": "3930:49:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "falseBody": {
                          "condition": {
                            "argumentTypes": null,
                            "commonType": {
                              "typeIdentifier": "t_bytes32",
                              "typeString": "bytes32"
                            },
                            "id": 6396,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "leftExpression": {
                              "argumentTypes": null,
                              "id": 6391,
                              "name": "bytes32event",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6335,
                              "src": "4039:12:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "nodeType": "BinaryOperation",
                            "operator": "==",
                            "rightExpression": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 6394,
                                  "name": "CERTIFIED_FILE_CREATED_EVENT",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6151,
                                  "src": "4068:28:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_string_memory",
                                    "typeString": "string memory"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_string_memory",
                                    "typeString": "string memory"
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": null,
                                  "id": 6392,
                                  "name": "Utils",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 7289,
                                  "src": "4055:5:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_type$_t_contract$_Utils_$7289_$",
                                    "typeString": "type(library Utils)"
                                  }
                                },
                                "id": 6393,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "memberName": "keccak",
                                "nodeType": "MemberAccess",
                                "referencedDeclaration": 7288,
                                "src": "4055:12:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$",
                                  "typeString": "function (string memory) pure returns (bytes32)"
                                }
                              },
                              "id": 6395,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "4055:42:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              }
                            },
                            "src": "4039:58:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "falseBody": {
                            "condition": {
                              "argumentTypes": null,
                              "commonType": {
                                "typeIdentifier": "t_bytes32",
                                "typeString": "bytes32"
                              },
                              "id": 6407,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "lValueRequested": false,
                              "leftExpression": {
                                "argumentTypes": null,
                                "id": 6402,
                                "name": "bytes32event",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6335,
                                "src": "4165:12:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "nodeType": "BinaryOperation",
                              "operator": "==",
                              "rightExpression": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 6405,
                                    "name": "CERTIFIED_EMAIL_CREATED_EVENT",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6154,
                                    "src": "4194:29:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_string_memory",
                                      "typeString": "string memory"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_string_memory",
                                      "typeString": "string memory"
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 6403,
                                    "name": "Utils",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7289,
                                    "src": "4181:5:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_type$_t_contract$_Utils_$7289_$",
                                      "typeString": "type(library Utils)"
                                    }
                                  },
                                  "id": 6404,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "keccak",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": 7288,
                                  "src": "4181:12:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$",
                                    "typeString": "function (string memory) pure returns (bytes32)"
                                  }
                                },
                                "id": 6406,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4181:43:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                }
                              },
                              "src": "4165:59:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_bool",
                                "typeString": "bool"
                              }
                            },
                            "falseBody": {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_bytes32",
                                  "typeString": "bytes32"
                                },
                                "id": 6418,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 6413,
                                  "name": "bytes32event",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6335,
                                  "src": "4293:12:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "==",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 6416,
                                      "name": "CERTIFICATE_CREATED_EVENT",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6148,
                                      "src": "4322:25:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory",
                                        "typeString": "string memory"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_string_memory",
                                        "typeString": "string memory"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 6414,
                                      "name": "Utils",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 7289,
                                      "src": "4309:5:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_type$_t_contract$_Utils_$7289_$",
                                        "typeString": "type(library Utils)"
                                      }
                                    },
                                    "id": 6415,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "keccak",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 7288,
                                    "src": "4309:12:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$",
                                      "typeString": "function (string memory) pure returns (bytes32)"
                                    }
                                  },
                                  "id": 6417,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "4309:39:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  }
                                },
                                "src": "4293:55:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": {
                                "condition": {
                                  "argumentTypes": null,
                                  "commonType": {
                                    "typeIdentifier": "t_bytes32",
                                    "typeString": "bytes32"
                                  },
                                  "id": 6429,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "leftExpression": {
                                    "argumentTypes": null,
                                    "id": 6424,
                                    "name": "bytes32event",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6335,
                                    "src": "4414:12:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "nodeType": "BinaryOperation",
                                  "operator": "==",
                                  "rightExpression": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "id": 6427,
                                        "name": "TIMELOG_ADDED_EVENT",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 6136,
                                        "src": "4443:19:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_string_memory",
                                          "typeString": "string memory"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_string_memory",
                                          "typeString": "string memory"
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": null,
                                        "id": 6425,
                                        "name": "Utils",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 7289,
                                        "src": "4430:5:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_type$_t_contract$_Utils_$7289_$",
                                          "typeString": "type(library Utils)"
                                        }
                                      },
                                      "id": 6426,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "memberName": "keccak",
                                      "nodeType": "MemberAccess",
                                      "referencedDeclaration": 7288,
                                      "src": "4430:12:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$",
                                        "typeString": "function (string memory) pure returns (bytes32)"
                                      }
                                    },
                                    "id": 6428,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "4430:33:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    }
                                  },
                                  "src": "4414:49:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_bool",
                                    "typeString": "bool"
                                  }
                                },
                                "falseBody": {
                                  "condition": {
                                    "argumentTypes": null,
                                    "commonType": {
                                      "typeIdentifier": "t_bytes32",
                                      "typeString": "bytes32"
                                    },
                                    "id": 6440,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "leftExpression": {
                                      "argumentTypes": null,
                                      "id": 6435,
                                      "name": "bytes32event",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6335,
                                      "src": "4523:12:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "nodeType": "BinaryOperation",
                                    "operator": "==",
                                    "rightExpression": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "id": 6438,
                                          "name": "PAYMENT_CHECK_ADDED_EVENT",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6145,
                                          "src": "4552:25:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_string_memory",
                                            "typeString": "string memory"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_string_memory",
                                            "typeString": "string memory"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": null,
                                          "id": 6436,
                                          "name": "Utils",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 7289,
                                          "src": "4539:5:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_contract$_Utils_$7289_$",
                                            "typeString": "type(library Utils)"
                                          }
                                        },
                                        "id": 6437,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "lValueRequested": false,
                                        "memberName": "keccak",
                                        "nodeType": "MemberAccess",
                                        "referencedDeclaration": 7288,
                                        "src": "4539:12:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_internal_pure$_t_string_memory_ptr_$returns$_t_bytes32_$",
                                          "typeString": "function (string memory) pure returns (bytes32)"
                                        }
                                      },
                                      "id": 6439,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "4539:39:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bytes32",
                                        "typeString": "bytes32"
                                      }
                                    },
                                    "src": "4523:55:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_bool",
                                      "typeString": "bool"
                                    }
                                  },
                                  "falseBody": null,
                                  "id": 6446,
                                  "nodeType": "IfStatement",
                                  "src": "4519:114:20",
                                  "trueBody": {
                                    "id": 6445,
                                    "nodeType": "Block",
                                    "src": "4580:53:20",
                                    "statements": [
                                      {
                                        "eventCall": {
                                          "argumentTypes": null,
                                          "arguments": [
                                            {
                                              "argumentTypes": null,
                                              "id": 6442,
                                              "name": "addr",
                                              "nodeType": "Identifier",
                                              "overloadedDeclarations": [],
                                              "referencedDeclaration": 6331,
                                              "src": "4617:4:20",
                                              "typeDescriptions": {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                              }
                                            }
                                          ],
                                          "expression": {
                                            "argumentTypes": [
                                              {
                                                "typeIdentifier": "t_address",
                                                "typeString": "address"
                                              }
                                            ],
                                            "id": 6441,
                                            "name": "PaymentCheckAdded",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6220,
                                            "src": "4599:17:20",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                                              "typeString": "function (address)"
                                            }
                                          },
                                          "id": 6443,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": false,
                                          "kind": "functionCall",
                                          "lValueRequested": false,
                                          "names": [],
                                          "nodeType": "FunctionCall",
                                          "src": "4599:23:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_tuple$__$",
                                            "typeString": "tuple()"
                                          }
                                        },
                                        "id": 6444,
                                        "nodeType": "EmitStatement",
                                        "src": "4594:28:20"
                                      }
                                    ]
                                  }
                                },
                                "id": 6447,
                                "nodeType": "IfStatement",
                                "src": "4410:223:20",
                                "trueBody": {
                                  "id": 6434,
                                  "nodeType": "Block",
                                  "src": "4465:48:20",
                                  "statements": [
                                    {
                                      "eventCall": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "id": 6431,
                                            "name": "addr",
                                            "nodeType": "Identifier",
                                            "overloadedDeclarations": [],
                                            "referencedDeclaration": 6331,
                                            "src": "4497:4:20",
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_address",
                                              "typeString": "address"
                                            }
                                          ],
                                          "id": 6430,
                                          "name": "TimeLogAdded",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6216,
                                          "src": "4484:12:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                                            "typeString": "function (address)"
                                          }
                                        },
                                        "id": 6432,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": false,
                                        "kind": "functionCall",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "4484:18:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_tuple$__$",
                                          "typeString": "tuple()"
                                        }
                                      },
                                      "id": 6433,
                                      "nodeType": "EmitStatement",
                                      "src": "4479:23:20"
                                    }
                                  ]
                                }
                              },
                              "id": 6448,
                              "nodeType": "IfStatement",
                              "src": "4289:344:20",
                              "trueBody": {
                                "id": 6423,
                                "nodeType": "Block",
                                "src": "4350:54:20",
                                "statements": [
                                  {
                                    "eventCall": {
                                      "argumentTypes": null,
                                      "arguments": [
                                        {
                                          "argumentTypes": null,
                                          "id": 6420,
                                          "name": "addr",
                                          "nodeType": "Identifier",
                                          "overloadedDeclarations": [],
                                          "referencedDeclaration": 6331,
                                          "src": "4388:4:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                          }
                                        }
                                      ],
                                      "expression": {
                                        "argumentTypes": [
                                          {
                                            "typeIdentifier": "t_address",
                                            "typeString": "address"
                                          }
                                        ],
                                        "id": 6419,
                                        "name": "CertificateCreated",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 6212,
                                        "src": "4369:18:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                                          "typeString": "function (address)"
                                        }
                                      },
                                      "id": 6421,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "kind": "functionCall",
                                      "lValueRequested": false,
                                      "names": [],
                                      "nodeType": "FunctionCall",
                                      "src": "4369:24:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_tuple$__$",
                                        "typeString": "tuple()"
                                      }
                                    },
                                    "id": 6422,
                                    "nodeType": "EmitStatement",
                                    "src": "4364:29:20"
                                  }
                                ]
                              }
                            },
                            "id": 6449,
                            "nodeType": "IfStatement",
                            "src": "4161:472:20",
                            "trueBody": {
                              "id": 6412,
                              "nodeType": "Block",
                              "src": "4226:57:20",
                              "statements": [
                                {
                                  "eventCall": {
                                    "argumentTypes": null,
                                    "arguments": [
                                      {
                                        "argumentTypes": null,
                                        "id": 6409,
                                        "name": "addr",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 6331,
                                        "src": "4267:4:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": [
                                        {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      ],
                                      "id": 6408,
                                      "name": "CertifiedEmailCreated",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6208,
                                      "src": "4245:21:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                                        "typeString": "function (address)"
                                      }
                                    },
                                    "id": 6410,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "kind": "functionCall",
                                    "lValueRequested": false,
                                    "names": [],
                                    "nodeType": "FunctionCall",
                                    "src": "4245:27:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_tuple$__$",
                                      "typeString": "tuple()"
                                    }
                                  },
                                  "id": 6411,
                                  "nodeType": "EmitStatement",
                                  "src": "4240:32:20"
                                }
                              ]
                            }
                          },
                          "id": 6450,
                          "nodeType": "IfStatement",
                          "src": "4035:598:20",
                          "trueBody": {
                            "id": 6401,
                            "nodeType": "Block",
                            "src": "4099:56:20",
                            "statements": [
                              {
                                "eventCall": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 6398,
                                      "name": "addr",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6331,
                                      "src": "4139:4:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    ],
                                    "id": 6397,
                                    "name": "CertifiedFileCreated",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6204,
                                    "src": "4118:20:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                                      "typeString": "function (address)"
                                    }
                                  },
                                  "id": 6399,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "4118:26:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_tuple$__$",
                                    "typeString": "tuple()"
                                  }
                                },
                                "id": 6400,
                                "nodeType": "EmitStatement",
                                "src": "4113:31:20"
                              }
                            ]
                          }
                        },
                        "id": 6451,
                        "nodeType": "IfStatement",
                        "src": "3926:707:20",
                        "trueBody": {
                          "id": 6390,
                          "nodeType": "Block",
                          "src": "3981:48:20",
                          "statements": [
                            {
                              "eventCall": {
                                "argumentTypes": null,
                                "arguments": [
                                  {
                                    "argumentTypes": null,
                                    "id": 6387,
                                    "name": "addr",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 6331,
                                    "src": "4013:4:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  }
                                ],
                                "expression": {
                                  "argumentTypes": [
                                    {
                                      "typeIdentifier": "t_address",
                                      "typeString": "address"
                                    }
                                  ],
                                  "id": 6386,
                                  "name": "EventCreated",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6200,
                                  "src": "4000:12:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                                    "typeString": "function (address)"
                                  }
                                },
                                "id": 6388,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "kind": "functionCall",
                                "lValueRequested": false,
                                "names": [],
                                "nodeType": "FunctionCall",
                                "src": "4000:18:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_tuple$__$",
                                  "typeString": "tuple()"
                                }
                              },
                              "id": 6389,
                              "nodeType": "EmitStatement",
                              "src": "3995:23:20"
                            }
                          ]
                        }
                      },
                      "id": 6452,
                      "nodeType": "IfStatement",
                      "src": "3819:814:20",
                      "trueBody": {
                        "id": 6379,
                        "nodeType": "Block",
                        "src": "3873:47:20",
                        "statements": [
                          {
                            "eventCall": {
                              "argumentTypes": null,
                              "arguments": [
                                {
                                  "argumentTypes": null,
                                  "id": 6376,
                                  "name": "addr",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6331,
                                  "src": "3904:4:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                }
                              ],
                              "expression": {
                                "argumentTypes": [
                                  {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                ],
                                "id": 6375,
                                "name": "FileCreated",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6196,
                                "src": "3892:11:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                                  "typeString": "function (address)"
                                }
                              },
                              "id": 6377,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": false,
                              "kind": "functionCall",
                              "lValueRequested": false,
                              "names": [],
                              "nodeType": "FunctionCall",
                              "src": "3892:17:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_tuple$__$",
                                "typeString": "tuple()"
                              }
                            },
                            "id": 6378,
                            "nodeType": "EmitStatement",
                            "src": "3887:22:20"
                          }
                        ]
                      }
                    },
                    "id": 6453,
                    "nodeType": "IfStatement",
                    "src": "3704:929:20",
                    "trueBody": {
                      "id": 6368,
                      "nodeType": "Block",
                      "src": "3762:51:20",
                      "statements": [
                        {
                          "eventCall": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "id": 6365,
                                "name": "addr",
                                "nodeType": "Identifier",
                                "overloadedDeclarations": [],
                                "referencedDeclaration": 6331,
                                "src": "3797:4:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              ],
                              "id": 6364,
                              "name": "DocumentCreated",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6192,
                              "src": "3781:15:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                                "typeString": "function (address)"
                              }
                            },
                            "id": 6366,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "kind": "functionCall",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "3781:21:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_tuple$__$",
                              "typeString": "tuple()"
                            }
                          },
                          "id": 6367,
                          "nodeType": "EmitStatement",
                          "src": "3776:26:20"
                        }
                      ]
                    }
                  },
                  "id": 6454,
                  "nodeType": "IfStatement",
                  "src": "3587:1046:20",
                  "trueBody": {
                    "id": 6357,
                    "nodeType": "Block",
                    "src": "3646:52:20",
                    "statements": [
                      {
                        "eventCall": {
                          "argumentTypes": null,
                          "arguments": [
                            {
                              "argumentTypes": null,
                              "id": 6354,
                              "name": "addr",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6331,
                              "src": "3682:4:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_address",
                                "typeString": "address"
                              }
                            ],
                            "id": 6353,
                            "name": "SignatureCreated",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6188,
                            "src": "3665:16:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_event_nonpayable$_t_address_$returns$__$",
                              "typeString": "function (address)"
                            }
                          },
                          "id": 6355,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "3665:22:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_tuple$__$",
                            "typeString": "tuple()"
                          }
                        },
                        "id": 6356,
                        "nodeType": "EmitStatement",
                        "src": "3660:27:20"
                      }
                    ]
                  }
                }
              ]
            },
            "documentation": null,
            "id": 6456,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "notify",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6332,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6329,
                  "name": "eventType",
                  "nodeType": "VariableDeclaration",
                  "scope": 6456,
                  "src": "3315:23:20",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 6328,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "3315:6:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6331,
                  "name": "addr",
                  "nodeType": "VariableDeclaration",
                  "scope": 6456,
                  "src": "3348:12:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6330,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3348:7:20",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "3305:61:20"
            },
            "returnParameters": {
              "id": 6333,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3386:0:20"
            },
            "scope": 6521,
            "src": "3289:1350:20",
            "stateMutability": "nonpayable",
            "superFunction": 6926,
            "visibility": "public"
          },
          {
            "body": {
              "id": 6519,
              "nodeType": "Block",
              "src": "4696:601:20",
              "statements": [
                {
                  "assignments": [
                    6462
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6462,
                      "name": "checkedAddress",
                      "nodeType": "VariableDeclaration",
                      "scope": 6519,
                      "src": "4706:22:20",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 6461,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "4706:7:20",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6463,
                  "initialValue": null,
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4706:22:20"
                },
                {
                  "assignments": [
                    6465
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6465,
                      "name": "notificationIndex",
                      "nodeType": "VariableDeclaration",
                      "scope": 6519,
                      "src": "4738:22:20",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6464,
                        "name": "uint",
                        "nodeType": "ElementaryTypeName",
                        "src": "4738:4:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6467,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "30",
                    "id": 6466,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "number",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "4763:1:20",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_rational_0_by_1",
                      "typeString": "int_const 0"
                    },
                    "value": "0"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4738:26:20"
                },
                {
                  "assignments": [
                    6469
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6469,
                      "name": "result",
                      "nodeType": "VariableDeclaration",
                      "scope": 6519,
                      "src": "4774:11:20",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      },
                      "typeName": {
                        "id": 6468,
                        "name": "bool",
                        "nodeType": "ElementaryTypeName",
                        "src": "4774:4:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      "value": null,
                      "visibility": "internal"
                    }
                  ],
                  "id": 6471,
                  "initialValue": {
                    "argumentTypes": null,
                    "hexValue": "66616c7365",
                    "id": 6470,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "kind": "bool",
                    "lValueRequested": false,
                    "nodeType": "Literal",
                    "src": "4788:5:20",
                    "subdenomination": null,
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    },
                    "value": "false"
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "4774:19:20"
                },
                {
                  "condition": {
                    "argumentTypes": null,
                    "commonType": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    },
                    "id": 6475,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftExpression": {
                      "argumentTypes": null,
                      "expression": {
                        "argumentTypes": null,
                        "id": 6472,
                        "name": "tx",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7316,
                        "src": "4808:2:20",
                        "typeDescriptions": {
                          "typeIdentifier": "t_magic_transaction",
                          "typeString": "tx"
                        }
                      },
                      "id": 6473,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "origin",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": null,
                      "src": "4808:9:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address_payable",
                        "typeString": "address payable"
                      }
                    },
                    "nodeType": "BinaryOperation",
                    "operator": "==",
                    "rightExpression": {
                      "argumentTypes": null,
                      "id": 6474,
                      "name": "signaturit",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6122,
                      "src": "4821:10:20",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "4808:23:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "falseBody": {
                    "id": 6515,
                    "nodeType": "Block",
                    "src": "4878:389:20",
                    "statements": [
                      {
                        "body": {
                          "id": 6508,
                          "nodeType": "Block",
                          "src": "4895:324:20",
                          "statements": [
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6487,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftHandSide": {
                                  "argumentTypes": null,
                                  "id": 6481,
                                  "name": "checkedAddress",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6462,
                                  "src": "4913:14:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "Assignment",
                                "operator": "=",
                                "rightHandSide": {
                                  "argumentTypes": null,
                                  "arguments": [
                                    {
                                      "argumentTypes": null,
                                      "id": 6484,
                                      "name": "VALIDATED_NOTIFIERS_KEY",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6184,
                                      "src": "4968:23:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_string_memory",
                                        "typeString": "string memory"
                                      }
                                    },
                                    {
                                      "argumentTypes": null,
                                      "id": 6485,
                                      "name": "notificationIndex",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6465,
                                      "src": "4993:17:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    }
                                  ],
                                  "expression": {
                                    "argumentTypes": [
                                      {
                                        "typeIdentifier": "t_string_memory",
                                        "typeString": "string memory"
                                      },
                                      {
                                        "typeIdentifier": "t_uint256",
                                        "typeString": "uint256"
                                      }
                                    ],
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 6482,
                                      "name": "userContract",
                                      "nodeType": "Identifier",
                                      "overloadedDeclarations": [],
                                      "referencedDeclaration": 6124,
                                      "src": "4930:12:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_contract$_SignaturitUserInterface_$7251",
                                        "typeString": "contract SignaturitUserInterface"
                                      }
                                    },
                                    "id": 6483,
                                    "isConstant": false,
                                    "isLValue": false,
                                    "isPure": false,
                                    "lValueRequested": false,
                                    "memberName": "getAddressArrayAttribute",
                                    "nodeType": "MemberAccess",
                                    "referencedDeclaration": 7220,
                                    "src": "4930:37:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_function_external_view$_t_string_memory_ptr_$_t_uint256_$returns$_t_address_$",
                                      "typeString": "function (string memory,uint256) view external returns (address)"
                                    }
                                  },
                                  "id": 6486,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "kind": "functionCall",
                                  "lValueRequested": false,
                                  "names": [],
                                  "nodeType": "FunctionCall",
                                  "src": "4930:81:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "src": "4913:98:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                }
                              },
                              "id": 6488,
                              "nodeType": "ExpressionStatement",
                              "src": "4913:98:20"
                            },
                            {
                              "condition": {
                                "argumentTypes": null,
                                "commonType": {
                                  "typeIdentifier": "t_address",
                                  "typeString": "address"
                                },
                                "id": 6492,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "leftExpression": {
                                  "argumentTypes": null,
                                  "id": 6489,
                                  "name": "checkedAddress",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6462,
                                  "src": "5034:14:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address",
                                    "typeString": "address"
                                  }
                                },
                                "nodeType": "BinaryOperation",
                                "operator": "==",
                                "rightExpression": {
                                  "argumentTypes": null,
                                  "expression": {
                                    "argumentTypes": null,
                                    "id": 6490,
                                    "name": "tx",
                                    "nodeType": "Identifier",
                                    "overloadedDeclarations": [],
                                    "referencedDeclaration": 7316,
                                    "src": "5052:2:20",
                                    "typeDescriptions": {
                                      "typeIdentifier": "t_magic_transaction",
                                      "typeString": "tx"
                                    }
                                  },
                                  "id": 6491,
                                  "isConstant": false,
                                  "isLValue": false,
                                  "isPure": false,
                                  "lValueRequested": false,
                                  "memberName": "origin",
                                  "nodeType": "MemberAccess",
                                  "referencedDeclaration": null,
                                  "src": "5052:9:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_address_payable",
                                    "typeString": "address payable"
                                  }
                                },
                                "src": "5034:27:20",
                                "typeDescriptions": {
                                  "typeIdentifier": "t_bool",
                                  "typeString": "bool"
                                }
                              },
                              "falseBody": null,
                              "id": 6504,
                              "nodeType": "IfStatement",
                              "src": "5030:137:20",
                              "trueBody": {
                                "id": 6503,
                                "nodeType": "Block",
                                "src": "5063:104:20",
                                "statements": [
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 6495,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "id": 6493,
                                        "name": "result",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 6469,
                                        "src": "5085:6:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "hexValue": "74727565",
                                        "id": 6494,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "bool",
                                        "lValueRequested": false,
                                        "nodeType": "Literal",
                                        "src": "5094:4:20",
                                        "subdenomination": null,
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_bool",
                                          "typeString": "bool"
                                        },
                                        "value": "true"
                                      },
                                      "src": "5085:13:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_bool",
                                        "typeString": "bool"
                                      }
                                    },
                                    "id": 6496,
                                    "nodeType": "ExpressionStatement",
                                    "src": "5085:13:20"
                                  },
                                  {
                                    "expression": {
                                      "argumentTypes": null,
                                      "id": 6501,
                                      "isConstant": false,
                                      "isLValue": false,
                                      "isPure": false,
                                      "lValueRequested": false,
                                      "leftHandSide": {
                                        "argumentTypes": null,
                                        "id": 6497,
                                        "name": "checkedAddress",
                                        "nodeType": "Identifier",
                                        "overloadedDeclarations": [],
                                        "referencedDeclaration": 6462,
                                        "src": "5121:14:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address",
                                          "typeString": "address"
                                        }
                                      },
                                      "nodeType": "Assignment",
                                      "operator": "=",
                                      "rightHandSide": {
                                        "argumentTypes": null,
                                        "arguments": [
                                          {
                                            "argumentTypes": null,
                                            "hexValue": "30",
                                            "id": 6499,
                                            "isConstant": false,
                                            "isLValue": false,
                                            "isPure": true,
                                            "kind": "number",
                                            "lValueRequested": false,
                                            "nodeType": "Literal",
                                            "src": "5146:1:20",
                                            "subdenomination": null,
                                            "typeDescriptions": {
                                              "typeIdentifier": "t_rational_0_by_1",
                                              "typeString": "int_const 0"
                                            },
                                            "value": "0"
                                          }
                                        ],
                                        "expression": {
                                          "argumentTypes": [
                                            {
                                              "typeIdentifier": "t_rational_0_by_1",
                                              "typeString": "int_const 0"
                                            }
                                          ],
                                          "id": 6498,
                                          "isConstant": false,
                                          "isLValue": false,
                                          "isPure": true,
                                          "lValueRequested": false,
                                          "nodeType": "ElementaryTypeNameExpression",
                                          "src": "5138:7:20",
                                          "typeDescriptions": {
                                            "typeIdentifier": "t_type$_t_address_$",
                                            "typeString": "type(address)"
                                          },
                                          "typeName": "address"
                                        },
                                        "id": 6500,
                                        "isConstant": false,
                                        "isLValue": false,
                                        "isPure": true,
                                        "kind": "typeConversion",
                                        "lValueRequested": false,
                                        "names": [],
                                        "nodeType": "FunctionCall",
                                        "src": "5138:10:20",
                                        "typeDescriptions": {
                                          "typeIdentifier": "t_address_payable",
                                          "typeString": "address payable"
                                        }
                                      },
                                      "src": "5121:27:20",
                                      "typeDescriptions": {
                                        "typeIdentifier": "t_address",
                                        "typeString": "address"
                                      }
                                    },
                                    "id": 6502,
                                    "nodeType": "ExpressionStatement",
                                    "src": "5121:27:20"
                                  }
                                ]
                              }
                            },
                            {
                              "expression": {
                                "argumentTypes": null,
                                "id": 6506,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": false,
                                "lValueRequested": false,
                                "nodeType": "UnaryOperation",
                                "operator": "++",
                                "prefix": true,
                                "src": "5185:19:20",
                                "subExpression": {
                                  "argumentTypes": null,
                                  "id": 6505,
                                  "name": "notificationIndex",
                                  "nodeType": "Identifier",
                                  "overloadedDeclarations": [],
                                  "referencedDeclaration": 6465,
                                  "src": "5187:17:20",
                                  "typeDescriptions": {
                                    "typeIdentifier": "t_uint256",
                                    "typeString": "uint256"
                                  }
                                },
                                "typeDescriptions": {
                                  "typeIdentifier": "t_uint256",
                                  "typeString": "uint256"
                                }
                              },
                              "id": 6507,
                              "nodeType": "ExpressionStatement",
                              "src": "5185:19:20"
                            }
                          ]
                        },
                        "condition": {
                          "argumentTypes": null,
                          "commonType": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          "id": 6513,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftExpression": {
                            "argumentTypes": null,
                            "id": 6509,
                            "name": "checkedAddress",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6462,
                            "src": "5227:14:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address",
                              "typeString": "address"
                            }
                          },
                          "nodeType": "BinaryOperation",
                          "operator": "!=",
                          "rightExpression": {
                            "argumentTypes": null,
                            "arguments": [
                              {
                                "argumentTypes": null,
                                "hexValue": "30",
                                "id": 6511,
                                "isConstant": false,
                                "isLValue": false,
                                "isPure": true,
                                "kind": "number",
                                "lValueRequested": false,
                                "nodeType": "Literal",
                                "src": "5253:1:20",
                                "subdenomination": null,
                                "typeDescriptions": {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                },
                                "value": "0"
                              }
                            ],
                            "expression": {
                              "argumentTypes": [
                                {
                                  "typeIdentifier": "t_rational_0_by_1",
                                  "typeString": "int_const 0"
                                }
                              ],
                              "id": 6510,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "lValueRequested": false,
                              "nodeType": "ElementaryTypeNameExpression",
                              "src": "5245:7:20",
                              "typeDescriptions": {
                                "typeIdentifier": "t_type$_t_address_$",
                                "typeString": "type(address)"
                              },
                              "typeName": "address"
                            },
                            "id": 6512,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "typeConversion",
                            "lValueRequested": false,
                            "names": [],
                            "nodeType": "FunctionCall",
                            "src": "5245:10:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_address_payable",
                              "typeString": "address payable"
                            }
                          },
                          "src": "5227:28:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 6514,
                        "nodeType": "DoWhileStatement",
                        "src": "4892:365:20"
                      }
                    ]
                  },
                  "id": 6516,
                  "nodeType": "IfStatement",
                  "src": "4804:463:20",
                  "trueBody": {
                    "id": 6480,
                    "nodeType": "Block",
                    "src": "4833:39:20",
                    "statements": [
                      {
                        "expression": {
                          "argumentTypes": null,
                          "id": 6478,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "leftHandSide": {
                            "argumentTypes": null,
                            "id": 6476,
                            "name": "result",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6469,
                            "src": "4847:6:20",
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            }
                          },
                          "nodeType": "Assignment",
                          "operator": "=",
                          "rightHandSide": {
                            "argumentTypes": null,
                            "hexValue": "74727565",
                            "id": 6477,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "kind": "bool",
                            "lValueRequested": false,
                            "nodeType": "Literal",
                            "src": "4856:4:20",
                            "subdenomination": null,
                            "typeDescriptions": {
                              "typeIdentifier": "t_bool",
                              "typeString": "bool"
                            },
                            "value": "true"
                          },
                          "src": "4847:13:20",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bool",
                            "typeString": "bool"
                          }
                        },
                        "id": 6479,
                        "nodeType": "ExpressionStatement",
                        "src": "4847:13:20"
                      }
                    ]
                  }
                },
                {
                  "expression": {
                    "argumentTypes": null,
                    "id": 6517,
                    "name": "result",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6469,
                    "src": "5284:6:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "functionReturnParameters": 6460,
                  "id": 6518,
                  "nodeType": "Return",
                  "src": "5277:13:20"
                }
              ]
            },
            "documentation": null,
            "id": 6520,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "validAddress",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6457,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4666:2:20"
            },
            "returnParameters": {
              "id": 6460,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6459,
                  "name": "",
                  "nodeType": "VariableDeclaration",
                  "scope": 6520,
                  "src": "4691:4:20",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6458,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4691:4:20",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "value": null,
                  "visibility": "internal"
                }
              ],
              "src": "4690:6:20"
            },
            "scope": 6521,
            "src": "4645:652:20",
            "stateMutability": "view",
            "superFunction": null,
            "visibility": "internal"
          }
        ],
        "scope": 6522,
        "src": "187:5112:20"
      }
    ],
    "src": "0:5299:20"
  },
  "compiler": {
    "name": "solc",
    "version": "0.5.0+commit.1d4f565a.Emscripten.clang"
  },
  "networks": {},
  "schemaVersion": "2.0.3",
  "updatedAt": "2020-01-15T10:55:50.256Z"
}