{
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "premiumAmount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "sumInsuredAmount",
          "type": "uint256"
        }
      ],
      "name": "LogApplicationCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "LogApplicationDeclined",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "premiumAmountOld",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "premiumAmount",
          "type": "uint256"
        }
      ],
      "name": "LogApplicationPremiumAdjusted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "LogApplicationRevoked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "sumInsuredAmountOld",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "sumInsuredAmount",
          "type": "uint256"
        }
      ],
      "name": "LogApplicationSumInsuredAdjusted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "LogApplicationUnderwritten",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "claimId",
          "type": "uint256"
        }
      ],
      "name": "LogClaimClosed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "claimId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "confirmedAmount",
          "type": "uint256"
        }
      ],
      "name": "LogClaimConfirmed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "claimId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "claimAmount",
          "type": "uint256"
        }
      ],
      "name": "LogClaimCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "claimId",
          "type": "uint256"
        }
      ],
      "name": "LogClaimDeclined",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "productId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "enum IPolicy.PolicyFlowState",
          "name": "state",
          "type": "uint8"
        }
      ],
      "name": "LogMetadataCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "enum IPolicy.PolicyFlowState",
          "name": "state",
          "type": "uint8"
        }
      ],
      "name": "LogMetadataStateChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "claimId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "payoutId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "LogPayoutCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "payoutId",
          "type": "uint256"
        }
      ],
      "name": "LogPayoutProcessed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "LogPolicyClosed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "LogPolicyCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "LogPolicyExpired",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "premiumExpectedAmountOld",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "premiumExpectedAmount",
          "type": "uint256"
        }
      ],
      "name": "LogPolicyPremiumAdjusted",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "LogPremiumCollected",
      "type": "event"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "expectedPremiumAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "sumInsuredAmount",
          "type": "uint256"
        }
      ],
      "name": "adjustPremiumSumInsured",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "claimId",
          "type": "uint256"
        }
      ],
      "name": "closeClaim",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "closePolicy",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "collectPremium",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "claimId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "confirmedAmount",
          "type": "uint256"
        }
      ],
      "name": "confirmClaim",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "premiumAmount",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "sumInsuredAmount",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "createApplication",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "claimAmount",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "createClaim",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "claimId",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "claimId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "payoutAmount",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "createPayout",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "payoutId",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "createPolicy",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "owner",
          "type": "address"
        },
        {
          "internalType": "uint256",
          "name": "productId",
          "type": "uint256"
        },
        {
          "internalType": "bytes",
          "name": "data",
          "type": "bytes"
        }
      ],
      "name": "createPolicyFlow",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "declineApplication",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "claimId",
          "type": "uint256"
        }
      ],
      "name": "declineClaim",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "expirePolicy",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "payoutId",
          "type": "uint256"
        }
      ],
      "name": "processPayout",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "revokeApplication",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "underwriteApplication",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "allSourcePaths": {
    "18": "contracts/modules/IPolicy.sol"
  },
  "ast": {
    "absolutePath": "contracts/modules/IPolicy.sol",
    "exportedSymbols": {
      "IPolicy": [
        3257
      ]
    },
    "id": 3258,
    "license": "Apache-2.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 2913,
        "literals": [
          "solidity",
          "0.8",
          ".2"
        ],
        "nodeType": "PragmaDirective",
        "src": "39:22:18"
      },
      {
        "abstract": false,
        "baseContracts": [],
        "contractDependencies": [],
        "contractKind": "interface",
        "fullyImplemented": false,
        "id": 3257,
        "linearizedBaseContracts": [
          3257
        ],
        "name": "IPolicy",
        "nameLocation": "73:7:18",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "anonymous": false,
            "id": 2924,
            "name": "LogMetadataCreated",
            "nameLocation": "108:18:18",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2923,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2915,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "owner",
                  "nameLocation": "144:5:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 2924,
                  "src": "136:13:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 2914,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "136:7:18",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2917,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "167:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 2924,
                  "src": "159:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2916,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "159:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2919,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "productId",
                  "nameLocation": "194:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 2924,
                  "src": "186:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2918,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "186:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2922,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "state",
                  "nameLocation": "230:5:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 2924,
                  "src": "214:21:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_PolicyFlowState_$3041",
                    "typeString": "enum IPolicy.PolicyFlowState"
                  },
                  "typeName": {
                    "id": 2921,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 2920,
                      "name": "PolicyFlowState",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3041,
                      "src": "214:15:18"
                    },
                    "referencedDeclaration": 3041,
                    "src": "214:15:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_PolicyFlowState_$3041",
                      "typeString": "enum IPolicy.PolicyFlowState"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "126:115:18"
            },
            "src": "102:140:18"
          },
          {
            "anonymous": false,
            "id": 2931,
            "name": "LogMetadataStateChanged",
            "nameLocation": "254:23:18",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2930,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2926,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "295:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 2931,
                  "src": "287:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2925,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "287:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2929,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "state",
                  "nameLocation": "331:5:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 2931,
                  "src": "315:21:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_PolicyFlowState_$3041",
                    "typeString": "enum IPolicy.PolicyFlowState"
                  },
                  "typeName": {
                    "id": 2928,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 2927,
                      "name": "PolicyFlowState",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3041,
                      "src": "315:15:18"
                    },
                    "referencedDeclaration": 3041,
                    "src": "315:15:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_PolicyFlowState_$3041",
                      "typeString": "enum IPolicy.PolicyFlowState"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "277:65:18"
            },
            "src": "248:95:18"
          },
          {
            "anonymous": false,
            "id": 2939,
            "name": "LogApplicationCreated",
            "nameLocation": "355:21:18",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2938,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2933,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "394:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 2939,
                  "src": "386:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2932,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "386:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2935,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "premiumAmount",
                  "nameLocation": "422:13:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 2939,
                  "src": "414:21:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2934,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "414:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2937,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "sumInsuredAmount",
                  "nameLocation": "454:16:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 2939,
                  "src": "446:24:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2936,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "446:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "376:100:18"
            },
            "src": "349:128:18"
          },
          {
            "anonymous": false,
            "id": 2943,
            "name": "LogApplicationRevoked",
            "nameLocation": "489:21:18",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2942,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2941,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "519:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 2943,
                  "src": "511:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2940,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "511:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "510:19:18"
            },
            "src": "483:47:18"
          },
          {
            "anonymous": false,
            "id": 2947,
            "name": "LogApplicationUnderwritten",
            "nameLocation": "541:26:18",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2946,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2945,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "576:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 2947,
                  "src": "568:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2944,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "568:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "567:19:18"
            },
            "src": "535:52:18"
          },
          {
            "anonymous": false,
            "id": 2951,
            "name": "LogApplicationDeclined",
            "nameLocation": "598:22:18",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2950,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2949,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "629:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 2951,
                  "src": "621:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2948,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "621:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "620:19:18"
            },
            "src": "592:48:18"
          },
          {
            "anonymous": false,
            "id": 2955,
            "name": "LogPolicyCreated",
            "nameLocation": "652:16:18",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2954,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2953,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "677:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 2955,
                  "src": "669:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2952,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "669:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "668:19:18"
            },
            "src": "646:42:18"
          },
          {
            "anonymous": false,
            "id": 2959,
            "name": "LogPolicyExpired",
            "nameLocation": "699:16:18",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2958,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2957,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "724:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 2959,
                  "src": "716:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2956,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "716:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "715:19:18"
            },
            "src": "693:42:18"
          },
          {
            "anonymous": false,
            "id": 2963,
            "name": "LogPolicyClosed",
            "nameLocation": "746:15:18",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2962,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2961,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "770:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 2963,
                  "src": "762:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2960,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "762:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "761:19:18"
            },
            "src": "740:41:18"
          },
          {
            "anonymous": false,
            "id": 2969,
            "name": "LogPremiumCollected",
            "nameLocation": "793:19:18",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2968,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2965,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "821:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 2969,
                  "src": "813:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2964,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "813:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2967,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "840:6:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 2969,
                  "src": "832:14:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2966,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "832:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "812:35:18"
            },
            "src": "787:61:18"
          },
          {
            "anonymous": false,
            "id": 2977,
            "name": "LogApplicationSumInsuredAdjusted",
            "nameLocation": "864:32:18",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2976,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2971,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "905:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 2977,
                  "src": "897:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2970,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "897:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2973,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "sumInsuredAmountOld",
                  "nameLocation": "924:19:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 2977,
                  "src": "916:27:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2972,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "916:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2975,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "sumInsuredAmount",
                  "nameLocation": "953:16:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 2977,
                  "src": "945:24:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2974,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "945:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "896:74:18"
            },
            "src": "858:113:18"
          },
          {
            "anonymous": false,
            "id": 2985,
            "name": "LogApplicationPremiumAdjusted",
            "nameLocation": "982:29:18",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2984,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2979,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "1020:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 2985,
                  "src": "1012:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2978,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1012:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2981,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "premiumAmountOld",
                  "nameLocation": "1039:16:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 2985,
                  "src": "1031:24:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2980,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1031:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2983,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "premiumAmount",
                  "nameLocation": "1065:13:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 2985,
                  "src": "1057:21:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2982,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1057:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1011:68:18"
            },
            "src": "976:104:18"
          },
          {
            "anonymous": false,
            "id": 2993,
            "name": "LogPolicyPremiumAdjusted",
            "nameLocation": "1091:24:18",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 2992,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2987,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "1124:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 2993,
                  "src": "1116:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2986,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1116:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2989,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "premiumExpectedAmountOld",
                  "nameLocation": "1143:24:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 2993,
                  "src": "1135:32:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2988,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1135:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2991,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "premiumExpectedAmount",
                  "nameLocation": "1177:21:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 2993,
                  "src": "1169:29:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2990,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1169:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1115:84:18"
            },
            "src": "1085:115:18"
          },
          {
            "anonymous": false,
            "id": 3001,
            "name": "LogClaimCreated",
            "nameLocation": "1212:15:18",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3000,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 2995,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "1236:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3001,
                  "src": "1228:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 2994,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1228:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2997,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "claimId",
                  "nameLocation": "1255:7:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3001,
                  "src": "1247:15:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2996,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1247:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 2999,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "claimAmount",
                  "nameLocation": "1272:11:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3001,
                  "src": "1264:19:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 2998,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1264:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1227:57:18"
            },
            "src": "1206:79:18"
          },
          {
            "anonymous": false,
            "id": 3009,
            "name": "LogClaimConfirmed",
            "nameLocation": "1296:17:18",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3008,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3003,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "1322:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3009,
                  "src": "1314:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3002,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1314:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3005,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "claimId",
                  "nameLocation": "1341:7:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3009,
                  "src": "1333:15:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3004,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1333:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3007,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "confirmedAmount",
                  "nameLocation": "1358:15:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3009,
                  "src": "1350:23:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3006,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1350:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1313:61:18"
            },
            "src": "1290:85:18"
          },
          {
            "anonymous": false,
            "id": 3015,
            "name": "LogClaimDeclined",
            "nameLocation": "1386:16:18",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3014,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3011,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "1411:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3015,
                  "src": "1403:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3010,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1403:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3013,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "claimId",
                  "nameLocation": "1430:7:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3015,
                  "src": "1422:15:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3012,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1422:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1402:36:18"
            },
            "src": "1380:59:18"
          },
          {
            "anonymous": false,
            "id": 3021,
            "name": "LogClaimClosed",
            "nameLocation": "1450:14:18",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3020,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3017,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "1473:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3021,
                  "src": "1465:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3016,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1465:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3019,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "claimId",
                  "nameLocation": "1492:7:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3021,
                  "src": "1484:15:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3018,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1484:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1464:36:18"
            },
            "src": "1444:57:18"
          },
          {
            "anonymous": false,
            "id": 3031,
            "name": "LogPayoutCreated",
            "nameLocation": "1513:16:18",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3030,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3023,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "1547:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3031,
                  "src": "1539:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3022,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1539:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3025,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "claimId",
                  "nameLocation": "1574:7:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3031,
                  "src": "1566:15:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3024,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1566:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3027,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "payoutId",
                  "nameLocation": "1599:8:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3031,
                  "src": "1591:16:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3026,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1591:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3029,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "1625:6:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3031,
                  "src": "1617:14:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3028,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1617:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1529:108:18"
            },
            "src": "1507:131:18"
          },
          {
            "anonymous": false,
            "id": 3037,
            "name": "LogPayoutProcessed",
            "nameLocation": "1650:18:18",
            "nodeType": "EventDefinition",
            "parameters": {
              "id": 3036,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3033,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "1686:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3037,
                  "src": "1678:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3032,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1678:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3035,
                  "indexed": false,
                  "mutability": "mutable",
                  "name": "payoutId",
                  "nameLocation": "1714:8:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3037,
                  "src": "1706:16:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3034,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1706:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1668:60:18"
            },
            "src": "1644:85:18"
          },
          {
            "canonicalName": "IPolicy.PolicyFlowState",
            "id": 3041,
            "members": [
              {
                "id": 3038,
                "name": "Started",
                "nameLocation": "1771:7:18",
                "nodeType": "EnumValue",
                "src": "1771:7:18"
              },
              {
                "id": 3039,
                "name": "Active",
                "nameLocation": "1780:6:18",
                "nodeType": "EnumValue",
                "src": "1780:6:18"
              },
              {
                "id": 3040,
                "name": "Finished",
                "nameLocation": "1788:8:18",
                "nodeType": "EnumValue",
                "src": "1788:8:18"
              }
            ],
            "name": "PolicyFlowState",
            "nameLocation": "1754:15:18",
            "nodeType": "EnumDefinition",
            "src": "1749:48:18"
          },
          {
            "canonicalName": "IPolicy.ApplicationState",
            "id": 3046,
            "members": [
              {
                "id": 3042,
                "name": "Applied",
                "nameLocation": "1825:7:18",
                "nodeType": "EnumValue",
                "src": "1825:7:18"
              },
              {
                "id": 3043,
                "name": "Revoked",
                "nameLocation": "1834:7:18",
                "nodeType": "EnumValue",
                "src": "1834:7:18"
              },
              {
                "id": 3044,
                "name": "Underwritten",
                "nameLocation": "1843:12:18",
                "nodeType": "EnumValue",
                "src": "1843:12:18"
              },
              {
                "id": 3045,
                "name": "Declined",
                "nameLocation": "1857:8:18",
                "nodeType": "EnumValue",
                "src": "1857:8:18"
              }
            ],
            "name": "ApplicationState",
            "nameLocation": "1807:16:18",
            "nodeType": "EnumDefinition",
            "src": "1802:64:18"
          },
          {
            "canonicalName": "IPolicy.PolicyState",
            "id": 3050,
            "members": [
              {
                "id": 3047,
                "name": "Active",
                "nameLocation": "1889:6:18",
                "nodeType": "EnumValue",
                "src": "1889:6:18"
              },
              {
                "id": 3048,
                "name": "Expired",
                "nameLocation": "1897:7:18",
                "nodeType": "EnumValue",
                "src": "1897:7:18"
              },
              {
                "id": 3049,
                "name": "Closed",
                "nameLocation": "1906:6:18",
                "nodeType": "EnumValue",
                "src": "1906:6:18"
              }
            ],
            "name": "PolicyState",
            "nameLocation": "1876:11:18",
            "nodeType": "EnumDefinition",
            "src": "1871:42:18"
          },
          {
            "canonicalName": "IPolicy.ClaimState",
            "id": 3055,
            "members": [
              {
                "id": 3051,
                "name": "Applied",
                "nameLocation": "1935:7:18",
                "nodeType": "EnumValue",
                "src": "1935:7:18"
              },
              {
                "id": 3052,
                "name": "Confirmed",
                "nameLocation": "1944:9:18",
                "nodeType": "EnumValue",
                "src": "1944:9:18"
              },
              {
                "id": 3053,
                "name": "Declined",
                "nameLocation": "1955:8:18",
                "nodeType": "EnumValue",
                "src": "1955:8:18"
              },
              {
                "id": 3054,
                "name": "Closed",
                "nameLocation": "1965:6:18",
                "nodeType": "EnumValue",
                "src": "1965:6:18"
              }
            ],
            "name": "ClaimState",
            "nameLocation": "1923:10:18",
            "nodeType": "EnumDefinition",
            "src": "1918:54:18"
          },
          {
            "canonicalName": "IPolicy.PayoutState",
            "id": 3058,
            "members": [
              {
                "id": 3056,
                "name": "Expected",
                "nameLocation": "1995:8:18",
                "nodeType": "EnumValue",
                "src": "1995:8:18"
              },
              {
                "id": 3057,
                "name": "PaidOut",
                "nameLocation": "2005:7:18",
                "nodeType": "EnumValue",
                "src": "2005:7:18"
              }
            ],
            "name": "PayoutState",
            "nameLocation": "1982:11:18",
            "nodeType": "EnumDefinition",
            "src": "1977:36:18"
          },
          {
            "canonicalName": "IPolicy.Metadata",
            "id": 3072,
            "members": [
              {
                "constant": false,
                "id": 3060,
                "mutability": "mutable",
                "name": "owner",
                "nameLocation": "2068:5:18",
                "nodeType": "VariableDeclaration",
                "scope": 3072,
                "src": "2060:13:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_address",
                  "typeString": "address"
                },
                "typeName": {
                  "id": 3059,
                  "name": "address",
                  "nodeType": "ElementaryTypeName",
                  "src": "2060:7:18",
                  "stateMutability": "nonpayable",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3062,
                "mutability": "mutable",
                "name": "productId",
                "nameLocation": "2091:9:18",
                "nodeType": "VariableDeclaration",
                "scope": 3072,
                "src": "2083:17:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3061,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2083:7:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3065,
                "mutability": "mutable",
                "name": "state",
                "nameLocation": "2126:5:18",
                "nodeType": "VariableDeclaration",
                "scope": 3072,
                "src": "2110:21:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_PolicyFlowState_$3041",
                  "typeString": "enum IPolicy.PolicyFlowState"
                },
                "typeName": {
                  "id": 3064,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 3063,
                    "name": "PolicyFlowState",
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 3041,
                    "src": "2110:15:18"
                  },
                  "referencedDeclaration": 3041,
                  "src": "2110:15:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_PolicyFlowState_$3041",
                    "typeString": "enum IPolicy.PolicyFlowState"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3067,
                "mutability": "mutable",
                "name": "data",
                "nameLocation": "2147:4:18",
                "nodeType": "VariableDeclaration",
                "scope": 3072,
                "src": "2141:10:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                },
                "typeName": {
                  "id": 3066,
                  "name": "bytes",
                  "nodeType": "ElementaryTypeName",
                  "src": "2141:5:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_storage_ptr",
                    "typeString": "bytes"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3069,
                "mutability": "mutable",
                "name": "createdAt",
                "nameLocation": "2169:9:18",
                "nodeType": "VariableDeclaration",
                "scope": 3072,
                "src": "2161:17:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3068,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2161:7:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3071,
                "mutability": "mutable",
                "name": "updatedAt",
                "nameLocation": "2196:9:18",
                "nodeType": "VariableDeclaration",
                "scope": 3072,
                "src": "2188:17:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3070,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2188:7:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Metadata",
            "nameLocation": "2041:8:18",
            "nodeType": "StructDefinition",
            "scope": 3257,
            "src": "2034:178:18",
            "visibility": "public"
          },
          {
            "canonicalName": "IPolicy.Application",
            "id": 3086,
            "members": [
              {
                "constant": false,
                "id": 3075,
                "mutability": "mutable",
                "name": "state",
                "nameLocation": "2264:5:18",
                "nodeType": "VariableDeclaration",
                "scope": 3086,
                "src": "2247:22:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_ApplicationState_$3046",
                  "typeString": "enum IPolicy.ApplicationState"
                },
                "typeName": {
                  "id": 3074,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 3073,
                    "name": "ApplicationState",
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 3046,
                    "src": "2247:16:18"
                  },
                  "referencedDeclaration": 3046,
                  "src": "2247:16:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_ApplicationState_$3046",
                    "typeString": "enum IPolicy.ApplicationState"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3077,
                "mutability": "mutable",
                "name": "premiumAmount",
                "nameLocation": "2287:13:18",
                "nodeType": "VariableDeclaration",
                "scope": 3086,
                "src": "2279:21:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3076,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2279:7:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3079,
                "mutability": "mutable",
                "name": "sumInsuredAmount",
                "nameLocation": "2318:16:18",
                "nodeType": "VariableDeclaration",
                "scope": 3086,
                "src": "2310:24:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3078,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2310:7:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3081,
                "mutability": "mutable",
                "name": "data",
                "nameLocation": "2350:4:18",
                "nodeType": "VariableDeclaration",
                "scope": 3086,
                "src": "2344:10:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                },
                "typeName": {
                  "id": 3080,
                  "name": "bytes",
                  "nodeType": "ElementaryTypeName",
                  "src": "2344:5:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_storage_ptr",
                    "typeString": "bytes"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3083,
                "mutability": "mutable",
                "name": "createdAt",
                "nameLocation": "2373:9:18",
                "nodeType": "VariableDeclaration",
                "scope": 3086,
                "src": "2365:17:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3082,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2365:7:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3085,
                "mutability": "mutable",
                "name": "updatedAt",
                "nameLocation": "2400:9:18",
                "nodeType": "VariableDeclaration",
                "scope": 3086,
                "src": "2392:17:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3084,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2392:7:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Application",
            "nameLocation": "2225:11:18",
            "nodeType": "StructDefinition",
            "scope": 3257,
            "src": "2218:198:18",
            "visibility": "public"
          },
          {
            "canonicalName": "IPolicy.Policy",
            "id": 3106,
            "members": [
              {
                "constant": false,
                "id": 3089,
                "mutability": "mutable",
                "name": "state",
                "nameLocation": "2458:5:18",
                "nodeType": "VariableDeclaration",
                "scope": 3106,
                "src": "2446:17:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_PolicyState_$3050",
                  "typeString": "enum IPolicy.PolicyState"
                },
                "typeName": {
                  "id": 3088,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 3087,
                    "name": "PolicyState",
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 3050,
                    "src": "2446:11:18"
                  },
                  "referencedDeclaration": 3050,
                  "src": "2446:11:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_PolicyState_$3050",
                    "typeString": "enum IPolicy.PolicyState"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3091,
                "mutability": "mutable",
                "name": "premiumExpectedAmount",
                "nameLocation": "2481:21:18",
                "nodeType": "VariableDeclaration",
                "scope": 3106,
                "src": "2473:29:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3090,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2473:7:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3093,
                "mutability": "mutable",
                "name": "premiumPaidAmount",
                "nameLocation": "2520:17:18",
                "nodeType": "VariableDeclaration",
                "scope": 3106,
                "src": "2512:25:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3092,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2512:7:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3095,
                "mutability": "mutable",
                "name": "claimsCount",
                "nameLocation": "2555:11:18",
                "nodeType": "VariableDeclaration",
                "scope": 3106,
                "src": "2547:19:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3094,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2547:7:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3097,
                "mutability": "mutable",
                "name": "openClaimsCount",
                "nameLocation": "2584:15:18",
                "nodeType": "VariableDeclaration",
                "scope": 3106,
                "src": "2576:23:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3096,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2576:7:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3099,
                "mutability": "mutable",
                "name": "payoutMaxAmount",
                "nameLocation": "2617:15:18",
                "nodeType": "VariableDeclaration",
                "scope": 3106,
                "src": "2609:23:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3098,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2609:7:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3101,
                "mutability": "mutable",
                "name": "payoutAmount",
                "nameLocation": "2650:12:18",
                "nodeType": "VariableDeclaration",
                "scope": 3106,
                "src": "2642:20:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3100,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2642:7:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3103,
                "mutability": "mutable",
                "name": "createdAt",
                "nameLocation": "2680:9:18",
                "nodeType": "VariableDeclaration",
                "scope": 3106,
                "src": "2672:17:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3102,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2672:7:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3105,
                "mutability": "mutable",
                "name": "updatedAt",
                "nameLocation": "2707:9:18",
                "nodeType": "VariableDeclaration",
                "scope": 3106,
                "src": "2699:17:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3104,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2699:7:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Policy",
            "nameLocation": "2429:6:18",
            "nodeType": "StructDefinition",
            "scope": 3257,
            "src": "2422:301:18",
            "visibility": "public"
          },
          {
            "canonicalName": "IPolicy.Claim",
            "id": 3120,
            "members": [
              {
                "constant": false,
                "id": 3109,
                "mutability": "mutable",
                "name": "state",
                "nameLocation": "2763:5:18",
                "nodeType": "VariableDeclaration",
                "scope": 3120,
                "src": "2752:16:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_ClaimState_$3055",
                  "typeString": "enum IPolicy.ClaimState"
                },
                "typeName": {
                  "id": 3108,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 3107,
                    "name": "ClaimState",
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 3055,
                    "src": "2752:10:18"
                  },
                  "referencedDeclaration": 3055,
                  "src": "2752:10:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_ClaimState_$3055",
                    "typeString": "enum IPolicy.ClaimState"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3111,
                "mutability": "mutable",
                "name": "claimAmount",
                "nameLocation": "2786:11:18",
                "nodeType": "VariableDeclaration",
                "scope": 3120,
                "src": "2778:19:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3110,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2778:7:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3113,
                "mutability": "mutable",
                "name": "paidAmount",
                "nameLocation": "2815:10:18",
                "nodeType": "VariableDeclaration",
                "scope": 3120,
                "src": "2807:18:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3112,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2807:7:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3115,
                "mutability": "mutable",
                "name": "data",
                "nameLocation": "2841:4:18",
                "nodeType": "VariableDeclaration",
                "scope": 3120,
                "src": "2835:10:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                },
                "typeName": {
                  "id": 3114,
                  "name": "bytes",
                  "nodeType": "ElementaryTypeName",
                  "src": "2835:5:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_storage_ptr",
                    "typeString": "bytes"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3117,
                "mutability": "mutable",
                "name": "createdAt",
                "nameLocation": "2863:9:18",
                "nodeType": "VariableDeclaration",
                "scope": 3120,
                "src": "2855:17:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3116,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2855:7:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3119,
                "mutability": "mutable",
                "name": "updatedAt",
                "nameLocation": "2890:9:18",
                "nodeType": "VariableDeclaration",
                "scope": 3120,
                "src": "2882:17:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3118,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2882:7:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Claim",
            "nameLocation": "2736:5:18",
            "nodeType": "StructDefinition",
            "scope": 3257,
            "src": "2729:177:18",
            "visibility": "public"
          },
          {
            "canonicalName": "IPolicy.Payout",
            "id": 3134,
            "members": [
              {
                "constant": false,
                "id": 3122,
                "mutability": "mutable",
                "name": "claimId",
                "nameLocation": "2944:7:18",
                "nodeType": "VariableDeclaration",
                "scope": 3134,
                "src": "2936:15:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3121,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2936:7:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3125,
                "mutability": "mutable",
                "name": "state",
                "nameLocation": "2973:5:18",
                "nodeType": "VariableDeclaration",
                "scope": 3134,
                "src": "2961:17:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_enum$_PayoutState_$3058",
                  "typeString": "enum IPolicy.PayoutState"
                },
                "typeName": {
                  "id": 3124,
                  "nodeType": "UserDefinedTypeName",
                  "pathNode": {
                    "id": 3123,
                    "name": "PayoutState",
                    "nodeType": "IdentifierPath",
                    "referencedDeclaration": 3058,
                    "src": "2961:11:18"
                  },
                  "referencedDeclaration": 3058,
                  "src": "2961:11:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_enum$_PayoutState_$3058",
                    "typeString": "enum IPolicy.PayoutState"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3127,
                "mutability": "mutable",
                "name": "amount",
                "nameLocation": "2996:6:18",
                "nodeType": "VariableDeclaration",
                "scope": 3134,
                "src": "2988:14:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3126,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "2988:7:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3129,
                "mutability": "mutable",
                "name": "data",
                "nameLocation": "3018:4:18",
                "nodeType": "VariableDeclaration",
                "scope": 3134,
                "src": "3012:10:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_bytes_storage_ptr",
                  "typeString": "bytes"
                },
                "typeName": {
                  "id": 3128,
                  "name": "bytes",
                  "nodeType": "ElementaryTypeName",
                  "src": "3012:5:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_storage_ptr",
                    "typeString": "bytes"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3131,
                "mutability": "mutable",
                "name": "createdAt",
                "nameLocation": "3040:9:18",
                "nodeType": "VariableDeclaration",
                "scope": 3134,
                "src": "3032:17:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3130,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "3032:7:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              },
              {
                "constant": false,
                "id": 3133,
                "mutability": "mutable",
                "name": "updatedAt",
                "nameLocation": "3067:9:18",
                "nodeType": "VariableDeclaration",
                "scope": 3134,
                "src": "3059:17:18",
                "stateVariable": false,
                "storageLocation": "default",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                },
                "typeName": {
                  "id": 3132,
                  "name": "uint256",
                  "nodeType": "ElementaryTypeName",
                  "src": "3059:7:18",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  }
                },
                "visibility": "internal"
              }
            ],
            "name": "Payout",
            "nameLocation": "2919:6:18",
            "nodeType": "StructDefinition",
            "scope": 3257,
            "src": "2912:171:18",
            "visibility": "public"
          },
          {
            "functionSelector": "a1814a1a",
            "id": 3145,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "createPolicyFlow",
            "nameLocation": "3098:16:18",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3141,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3136,
                  "mutability": "mutable",
                  "name": "owner",
                  "nameLocation": "3132:5:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3145,
                  "src": "3124:13:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 3135,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "3124:7:18",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3138,
                  "mutability": "mutable",
                  "name": "productId",
                  "nameLocation": "3155:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3145,
                  "src": "3147:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3137,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3147:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3140,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "3190:4:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3145,
                  "src": "3175:19:18",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3139,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "3175:5:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3114:86:18"
            },
            "returnParameters": {
              "id": 3144,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3143,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "3226:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3145,
                  "src": "3218:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3142,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3218:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3217:19:18"
            },
            "scope": 3257,
            "src": "3089:148:18",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "6780336e",
            "id": 3156,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "createApplication",
            "nameLocation": "3252:17:18",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3154,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3147,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "3287:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3156,
                  "src": "3279:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3146,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3279:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3149,
                  "mutability": "mutable",
                  "name": "premiumAmount",
                  "nameLocation": "3315:13:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3156,
                  "src": "3307:21:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3148,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3307:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3151,
                  "mutability": "mutable",
                  "name": "sumInsuredAmount",
                  "nameLocation": "3346:16:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3156,
                  "src": "3338:24:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3150,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3338:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3153,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "3387:4:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3156,
                  "src": "3372:19:18",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3152,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "3372:5:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3269:128:18"
            },
            "returnParameters": {
              "id": 3155,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3406:0:18"
            },
            "scope": 3257,
            "src": "3243:164:18",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "eb96cbed",
            "id": 3161,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "revokeApplication",
            "nameLocation": "3422:17:18",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3159,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3158,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "3448:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3161,
                  "src": "3440:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3157,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3440:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3439:19:18"
            },
            "returnParameters": {
              "id": 3160,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3467:0:18"
            },
            "scope": 3257,
            "src": "3413:55:18",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "5c955288",
            "id": 3166,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "underwriteApplication",
            "nameLocation": "3482:21:18",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3164,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3163,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "3512:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3166,
                  "src": "3504:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3162,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3504:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3503:19:18"
            },
            "returnParameters": {
              "id": 3165,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3531:0:18"
            },
            "scope": 3257,
            "src": "3473:59:18",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "296d6c7d",
            "id": 3171,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "declineApplication",
            "nameLocation": "3546:18:18",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3169,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3168,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "3573:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3171,
                  "src": "3565:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3167,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3565:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3564:19:18"
            },
            "returnParameters": {
              "id": 3170,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3592:0:18"
            },
            "scope": 3257,
            "src": "3537:56:18",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "e3ebdea5",
            "id": 3178,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "collectPremium",
            "nameLocation": "3608:14:18",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3176,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3173,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "3631:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3178,
                  "src": "3623:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3172,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3623:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3175,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "3650:6:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3178,
                  "src": "3642:14:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3174,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3642:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3622:35:18"
            },
            "returnParameters": {
              "id": 3177,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3666:0:18"
            },
            "scope": 3257,
            "src": "3599:68:18",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "30a73da5",
            "id": 3187,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "adjustPremiumSumInsured",
            "nameLocation": "3682:23:18",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3185,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3180,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "3723:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3187,
                  "src": "3715:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3179,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3715:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3182,
                  "mutability": "mutable",
                  "name": "expectedPremiumAmount",
                  "nameLocation": "3751:21:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3187,
                  "src": "3743:29:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3181,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3743:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3184,
                  "mutability": "mutable",
                  "name": "sumInsuredAmount",
                  "nameLocation": "3790:16:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3187,
                  "src": "3782:24:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3183,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3782:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3705:107:18"
            },
            "returnParameters": {
              "id": 3186,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3821:0:18"
            },
            "scope": 3257,
            "src": "3673:149:18",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "4c14ccc2",
            "id": 3192,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "createPolicy",
            "nameLocation": "3837:12:18",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3190,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3189,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "3858:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3192,
                  "src": "3850:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3188,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3850:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3849:19:18"
            },
            "returnParameters": {
              "id": 3191,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3877:0:18"
            },
            "scope": 3257,
            "src": "3828:50:18",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "47e3b138",
            "id": 3197,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "expirePolicy",
            "nameLocation": "3892:12:18",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3195,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3194,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "3913:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3197,
                  "src": "3905:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3193,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3905:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3904:19:18"
            },
            "returnParameters": {
              "id": 3196,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3932:0:18"
            },
            "scope": 3257,
            "src": "3883:50:18",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "adcadb28",
            "id": 3202,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "closePolicy",
            "nameLocation": "3947:11:18",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3200,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3199,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "3967:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3202,
                  "src": "3959:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3198,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "3959:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3958:19:18"
            },
            "returnParameters": {
              "id": 3201,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3986:0:18"
            },
            "scope": 3257,
            "src": "3938:49:18",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "ec935668",
            "id": 3213,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "createClaim",
            "nameLocation": "4002:11:18",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3209,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3204,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "4031:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3213,
                  "src": "4023:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3203,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4023:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3206,
                  "mutability": "mutable",
                  "name": "claimAmount",
                  "nameLocation": "4059:11:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3213,
                  "src": "4051:19:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3205,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4051:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3208,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "4096:4:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3213,
                  "src": "4081:19:18",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3207,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "4081:5:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4013:93:18"
            },
            "returnParameters": {
              "id": 3212,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3211,
                  "mutability": "mutable",
                  "name": "claimId",
                  "nameLocation": "4133:7:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3213,
                  "src": "4125:15:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3210,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4125:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4124:17:18"
            },
            "scope": 3257,
            "src": "3993:149:18",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "4e02c63f",
            "id": 3222,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "confirmClaim",
            "nameLocation": "4157:12:18",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3220,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3215,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "4187:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3222,
                  "src": "4179:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3214,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4179:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3217,
                  "mutability": "mutable",
                  "name": "claimId",
                  "nameLocation": "4215:7:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3222,
                  "src": "4207:15:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3216,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4207:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3219,
                  "mutability": "mutable",
                  "name": "confirmedAmount",
                  "nameLocation": "4241:15:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3222,
                  "src": "4233:23:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3218,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4233:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4169:93:18"
            },
            "returnParameters": {
              "id": 3221,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4271:0:18"
            },
            "scope": 3257,
            "src": "4148:124:18",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "4cda0de9",
            "id": 3229,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "declineClaim",
            "nameLocation": "4287:12:18",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3227,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3224,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "4308:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3229,
                  "src": "4300:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3223,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4300:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3226,
                  "mutability": "mutable",
                  "name": "claimId",
                  "nameLocation": "4327:7:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3229,
                  "src": "4319:15:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3225,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4319:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4299:36:18"
            },
            "returnParameters": {
              "id": 3228,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4344:0:18"
            },
            "scope": 3257,
            "src": "4278:67:18",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "7f29dba2",
            "id": 3236,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "closeClaim",
            "nameLocation": "4359:10:18",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3234,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3231,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "4378:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3236,
                  "src": "4370:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3230,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4370:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3233,
                  "mutability": "mutable",
                  "name": "claimId",
                  "nameLocation": "4397:7:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3236,
                  "src": "4389:15:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3232,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4389:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4369:36:18"
            },
            "returnParameters": {
              "id": 3235,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4414:0:18"
            },
            "scope": 3257,
            "src": "4350:65:18",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "db42b77b",
            "id": 3249,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "createPayout",
            "nameLocation": "4430:12:18",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3245,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3238,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "4460:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3249,
                  "src": "4452:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3237,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4452:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3240,
                  "mutability": "mutable",
                  "name": "claimId",
                  "nameLocation": "4487:7:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3249,
                  "src": "4479:15:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3239,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4479:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3242,
                  "mutability": "mutable",
                  "name": "payoutAmount",
                  "nameLocation": "4512:12:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3249,
                  "src": "4504:20:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3241,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4504:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3244,
                  "mutability": "mutable",
                  "name": "data",
                  "nameLocation": "4549:4:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3249,
                  "src": "4534:19:18",
                  "stateVariable": false,
                  "storageLocation": "calldata",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_calldata_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 3243,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "4534:5:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4442:117:18"
            },
            "returnParameters": {
              "id": 3248,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3247,
                  "mutability": "mutable",
                  "name": "payoutId",
                  "nameLocation": "4586:8:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3249,
                  "src": "4578:16:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3246,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4578:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4577:18:18"
            },
            "scope": 3257,
            "src": "4421:175:18",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "functionSelector": "fe64372b",
            "id": 3256,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "processPayout",
            "nameLocation": "4611:13:18",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 3254,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 3251,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "4642:9:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3256,
                  "src": "4634:17:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 3250,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4634:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 3253,
                  "mutability": "mutable",
                  "name": "payoutId",
                  "nameLocation": "4669:8:18",
                  "nodeType": "VariableDeclaration",
                  "scope": 3256,
                  "src": "4661:16:18",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 3252,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4661:7:18",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4624:59:18"
            },
            "returnParameters": {
              "id": 3255,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4692:0:18"
            },
            "scope": 3257,
            "src": "4602:91:18",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          }
        ],
        "scope": 3258,
        "src": "63:4632:18"
      }
    ],
    "src": "39:4657:18"
  },
  "bytecode": "",
  "bytecodeSha1": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
  "compiler": {
    "evm_version": "istanbul",
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "version": "0.8.2+commit.661d1103"
  },
  "contractName": "IPolicy",
  "coverageMap": {
    "branches": {},
    "statements": {}
  },
  "dependencies": [],
  "deployedBytecode": "",
  "deployedSourceMap": "",
  "language": "Solidity",
  "natspec": {
    "kind": "dev",
    "methods": {},
    "version": 1
  },
  "offset": [
    63,
    4695
  ],
  "opcodes": "",
  "pcMap": {},
  "sha1": "1c3411ced5e5b27768292ff3c50213ef5701ff25",
  "source": "// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\ninterface IPolicy {\n\n    // Events\n    event LogMetadataCreated(\n        address owner,\n        bytes32 processId,\n        uint256 productId, \n        PolicyFlowState state\n    );\n\n    event LogMetadataStateChanged(\n        bytes32 processId, \n        PolicyFlowState state\n    );\n\n    event LogApplicationCreated(\n        bytes32 processId, \n        uint256 premiumAmount, \n        uint256 sumInsuredAmount\n    );\n\n    event LogApplicationRevoked(bytes32 processId);\n    event LogApplicationUnderwritten(bytes32 processId);\n    event LogApplicationDeclined(bytes32 processId);\n\n    event LogPolicyCreated(bytes32 processId);\n    event LogPolicyExpired(bytes32 processId);\n    event LogPolicyClosed(bytes32 processId);\n\n    event LogPremiumCollected(bytes32 processId, uint256 amount);\n    \n    event LogApplicationSumInsuredAdjusted(bytes32 processId, uint256 sumInsuredAmountOld, uint256 sumInsuredAmount);\n    event LogApplicationPremiumAdjusted(bytes32 processId, uint256 premiumAmountOld, uint256 premiumAmount);\n    event LogPolicyPremiumAdjusted(bytes32 processId, uint256 premiumExpectedAmountOld, uint256 premiumExpectedAmount);\n\n    event LogClaimCreated(bytes32 processId, uint256 claimId, uint256 claimAmount);\n    event LogClaimConfirmed(bytes32 processId, uint256 claimId, uint256 confirmedAmount);\n    event LogClaimDeclined(bytes32 processId, uint256 claimId);\n    event LogClaimClosed(bytes32 processId, uint256 claimId);\n\n    event LogPayoutCreated(\n        bytes32 processId,\n        uint256 claimId,\n        uint256 payoutId,\n        uint256 amount\n    );\n\n    event LogPayoutProcessed(\n        bytes32 processId, \n        uint256 payoutId\n    );\n\n    // States\n    enum PolicyFlowState {Started, Active, Finished}\n    enum ApplicationState {Applied, Revoked, Underwritten, Declined}\n    enum PolicyState {Active, Expired, Closed}\n    enum ClaimState {Applied, Confirmed, Declined, Closed}\n    enum PayoutState {Expected, PaidOut}\n\n    // Objects\n    struct Metadata {\n        address owner;\n        uint256 productId;\n        PolicyFlowState state;\n        bytes data;\n        uint256 createdAt;\n        uint256 updatedAt;\n    }\n\n    struct Application {\n        ApplicationState state;\n        uint256 premiumAmount;\n        uint256 sumInsuredAmount;\n        bytes data; \n        uint256 createdAt;\n        uint256 updatedAt;\n    }\n\n    struct Policy {\n        PolicyState state;\n        uint256 premiumExpectedAmount;\n        uint256 premiumPaidAmount;\n        uint256 claimsCount;\n        uint256 openClaimsCount;\n        uint256 payoutMaxAmount;\n        uint256 payoutAmount;\n        uint256 createdAt;\n        uint256 updatedAt;\n    }\n\n    struct Claim {\n        ClaimState state;\n        uint256 claimAmount;\n        uint256 paidAmount;\n        bytes data;\n        uint256 createdAt;\n        uint256 updatedAt;\n    }\n\n    struct Payout {\n        uint256 claimId;\n        PayoutState state;\n        uint256 amount;\n        bytes data;\n        uint256 createdAt;\n        uint256 updatedAt;\n    }\n\n    function createPolicyFlow(\n        address owner,\n        uint256 productId, \n        bytes calldata data\n    ) external returns(bytes32 processId);\n\n    function createApplication(\n        bytes32 processId, \n        uint256 premiumAmount,\n        uint256 sumInsuredAmount,\n        bytes calldata data\n    ) external;\n\n    function revokeApplication(bytes32 processId) external;\n    function underwriteApplication(bytes32 processId) external;\n    function declineApplication(bytes32 processId) external;\n\n    function collectPremium(bytes32 processId, uint256 amount) external;\n\n    function adjustPremiumSumInsured(\n        bytes32 processId, \n        uint256 expectedPremiumAmount,\n        uint256 sumInsuredAmount\n    ) external;\n\n    function createPolicy(bytes32 processId) external;\n    function expirePolicy(bytes32 processId) external;\n    function closePolicy(bytes32 processId) external;\n\n    function createClaim(\n        bytes32 processId, \n        uint256 claimAmount, \n        bytes calldata data\n    ) external returns (uint256 claimId);\n\n    function confirmClaim(\n        bytes32 processId, \n        uint256 claimId, \n        uint256 confirmedAmount\n    ) external;\n\n    function declineClaim(bytes32 processId, uint256 claimId) external;\n    function closeClaim(bytes32 processId, uint256 claimId) external;\n\n    function createPayout(\n        bytes32 processId,\n        uint256 claimId,\n        uint256 payoutAmount,\n        bytes calldata data\n    ) external returns (uint256 payoutId);\n\n    function processPayout(\n        bytes32 processId,\n        uint256 payoutId\n    ) external;\n}\n",
  "sourceMap": "",
  "sourcePath": "contracts/modules/IPolicy.sol",
  "type": "interface"
}