{
  "abi": [
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "LogComponentApproved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "LogComponentArchived",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "componentName",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "enum IComponent.ComponentType",
          "name": "componentType",
          "type": "uint8"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "componentAddress",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "registryAddress",
          "type": "address"
        }
      ],
      "name": "LogComponentCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "LogComponentDeclined",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "LogComponentPaused",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "componentName",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "enum IComponent.ComponentType",
          "name": "componentType",
          "type": "uint8"
        },
        {
          "indexed": false,
          "internalType": "address",
          "name": "componentAddress",
          "type": "address"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "LogComponentProposed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "LogComponentResumed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "enum IComponent.ComponentState",
          "name": "stateOld",
          "type": "uint8"
        },
        {
          "indexed": false,
          "internalType": "enum IComponent.ComponentState",
          "name": "stateNew",
          "type": "uint8"
        }
      ],
      "name": "LogComponentStateChanged",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "LogComponentSuspended",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "LogComponentUnpaused",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "LogRiskpoolApproved",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "LogRiskpoolBundleCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "isMatching",
          "type": "bool"
        }
      ],
      "name": "LogRiskpoolBundleMatchesPolicy",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "collateralAmount",
          "type": "uint256"
        },
        {
          "indexed": false,
          "internalType": "bool",
          "name": "isSecured",
          "type": "bool"
        }
      ],
      "name": "LogRiskpoolCollateralLocked",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "collateralAmount",
          "type": "uint256"
        }
      ],
      "name": "LogRiskpoolCollateralReleased",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "address",
          "name": "riskpoolAddress",
          "type": "address"
        }
      ],
      "name": "LogRiskpoolCreated",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "LogRiskpoolDeclined",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "LogRiskpoolPayoutProcessed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "LogRiskpoolPremiumProcessed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": false,
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "LogRiskpoolProposed",
      "type": "event"
    },
    {
      "anonymous": false,
      "inputs": [
        {
          "indexed": true,
          "internalType": "address",
          "name": "previousOwner",
          "type": "address"
        },
        {
          "indexed": true,
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "OwnershipTransferred",
      "type": "event"
    },
    {
      "inputs": [],
      "name": "DEFAULT_FILTER_DATA_STRUCTURE",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "FULL_COLLATERALIZATION_LEVEL",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "activeBundles",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "approvalCallback",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "archiveCallback",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "id",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "riskpoolId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "tokenId",
              "type": "uint256"
            },
            {
              "internalType": "enum IBundle.BundleState",
              "name": "state",
              "type": "uint8"
            },
            {
              "internalType": "bytes",
              "name": "filter",
              "type": "bytes"
            },
            {
              "internalType": "uint256",
              "name": "capital",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "lockedCapital",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "balance",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "createdAt",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "updatedAt",
              "type": "uint256"
            }
          ],
          "internalType": "struct IBundle.Bundle",
          "name": "bundle",
          "type": "tuple"
        },
        {
          "components": [
            {
              "internalType": "enum IPolicy.ApplicationState",
              "name": "state",
              "type": "uint8"
            },
            {
              "internalType": "uint256",
              "name": "premiumAmount",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "sumInsuredAmount",
              "type": "uint256"
            },
            {
              "internalType": "bytes",
              "name": "data",
              "type": "bytes"
            },
            {
              "internalType": "uint256",
              "name": "createdAt",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "updatedAt",
              "type": "uint256"
            }
          ],
          "internalType": "struct IPolicy.Application",
          "name": "application",
          "type": "tuple"
        }
      ],
      "name": "bundleMatchesApplication",
      "outputs": [
        {
          "internalType": "bool",
          "name": "isMatching",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "bundles",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        }
      ],
      "name": "burnBundle",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        }
      ],
      "name": "closeBundle",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "collateralAmount",
          "type": "uint256"
        }
      ],
      "name": "collateralizePolicy",
      "outputs": [
        {
          "internalType": "bool",
          "name": "success",
          "type": "bool"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes",
          "name": "filter",
          "type": "bytes"
        },
        {
          "internalType": "uint256",
          "name": "initialAmount",
          "type": "uint256"
        }
      ],
      "name": "createBundle",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "declineCallback",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "defundBundle",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "netAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "fundBundle",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "netAmount",
          "type": "uint256"
        }
      ],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "idx",
          "type": "uint256"
        }
      ],
      "name": "getActiveBundleId",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getBalance",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "idx",
          "type": "uint256"
        }
      ],
      "name": "getBundle",
      "outputs": [
        {
          "components": [
            {
              "internalType": "uint256",
              "name": "id",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "riskpoolId",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "tokenId",
              "type": "uint256"
            },
            {
              "internalType": "enum IBundle.BundleState",
              "name": "state",
              "type": "uint8"
            },
            {
              "internalType": "bytes",
              "name": "filter",
              "type": "bytes"
            },
            {
              "internalType": "uint256",
              "name": "capital",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "lockedCapital",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "balance",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "createdAt",
              "type": "uint256"
            },
            {
              "internalType": "uint256",
              "name": "updatedAt",
              "type": "uint256"
            }
          ],
          "internalType": "struct IBundle.Bundle",
          "name": "",
          "type": "tuple"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getCapacity",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getCapital",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getCollateralizationLevel",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getErc20Token",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getFilterDataStructure",
      "outputs": [
        {
          "internalType": "string",
          "name": "",
          "type": "string"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getFullCollateralizationLevel",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "pure",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getId",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getMaximumNumberOfActiveBundles",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "maximumNumberOfActiveBundles",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getName",
      "outputs": [
        {
          "internalType": "bytes32",
          "name": "",
          "type": "bytes32"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getOwner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getRegistry",
      "outputs": [
        {
          "internalType": "contract IRegistry",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getState",
      "outputs": [
        {
          "internalType": "enum IComponent.ComponentState",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getSumOfSumInsuredCap",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getTotalValueLocked",
      "outputs": [
        {
          "internalType": "uint256",
          "name": "",
          "type": "uint256"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getType",
      "outputs": [
        {
          "internalType": "enum IComponent.ComponentType",
          "name": "",
          "type": "uint8"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "getWallet",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "isOracle",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "isProduct",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "isRiskpool",
      "outputs": [
        {
          "internalType": "bool",
          "name": "",
          "type": "bool"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        }
      ],
      "name": "lockBundle",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "owner",
      "outputs": [
        {
          "internalType": "address",
          "name": "",
          "type": "address"
        }
      ],
      "stateMutability": "view",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "pauseCallback",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "processPolicyPayout",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        },
        {
          "internalType": "uint256",
          "name": "amount",
          "type": "uint256"
        }
      ],
      "name": "processPolicyPremium",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "proposalCallback",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "bytes32",
          "name": "processId",
          "type": "bytes32"
        }
      ],
      "name": "releasePolicy",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "renounceOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "resumeCallback",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "id",
          "type": "uint256"
        }
      ],
      "name": "setId",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "maximumNumberOfActiveBundles",
          "type": "uint256"
        }
      ],
      "name": "setMaximumNumberOfActiveBundles",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "suspendCallback",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "address",
          "name": "newOwner",
          "type": "address"
        }
      ],
      "name": "transferOwnership",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [
        {
          "internalType": "uint256",
          "name": "bundleId",
          "type": "uint256"
        }
      ],
      "name": "unlockBundle",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    },
    {
      "inputs": [],
      "name": "unpauseCallback",
      "outputs": [],
      "stateMutability": "nonpayable",
      "type": "function"
    }
  ],
  "allSourcePaths": {
    "0": "/home/runner/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/access/Ownable.sol",
    "12": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/components/IRiskpool.sol",
    "15": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/components/Riskpool.sol",
    "16": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IAccess.sol",
    "18": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IComponentEvents.sol",
    "2": "/home/runner/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/token/ERC20/IERC20.sol",
    "21": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IRegistry.sol",
    "23": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IComponentOwnerService.sol",
    "24": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IInstanceOperatorService.sol",
    "25": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IInstanceService.sol",
    "26": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IOracleService.sol",
    "27": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IProductService.sol",
    "28": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IRiskpoolService.sol",
    "29": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/tokens/IBundleToken.sol",
    "4": "/home/runner/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/token/ERC721/IERC721.sol",
    "5": "/home/runner/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/utils/Context.sol",
    "6": "/home/runner/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/utils/introspection/IERC165.sol",
    "8": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/components/Component.sol",
    "9": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/components/IComponent.sol"
  },
  "ast": {
    "absolutePath": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/components/Riskpool.sol",
    "exportedSymbols": {
      "Component": [
        5114
      ],
      "Context": [
        6682
      ],
      "IAccess": [
        6858
      ],
      "IBundle": [
        3612
      ],
      "IBundleToken": [
        4029
      ],
      "IComponent": [
        5218
      ],
      "IComponentEvents": [
        6911
      ],
      "IComponentOwnerService": [
        7044
      ],
      "IERC165": [
        7662
      ],
      "IERC20": [
        4694
      ],
      "IERC721": [
        6660
      ],
      "IInstanceOperatorService": [
        7311
      ],
      "IInstanceService": [
        5668
      ],
      "IOracleService": [
        5262
      ],
      "IPolicy": [
        3958
      ],
      "IPool": [
        7160
      ],
      "IProductService": [
        5813
      ],
      "IRegistry": [
        7009
      ],
      "IRiskpool": [
        7650
      ],
      "IRiskpoolService": [
        7417
      ],
      "ITreasury": [
        2409
      ],
      "Ownable": [
        6795
      ],
      "Riskpool": [
        6544
      ]
    },
    "id": 6545,
    "license": "Apache-2.0",
    "nodeType": "SourceUnit",
    "nodes": [
      {
        "id": 5815,
        "literals": [
          "solidity",
          "0.8",
          ".2"
        ],
        "nodeType": "PragmaDirective",
        "src": "40:22:15"
      },
      {
        "absolutePath": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/components/IRiskpool.sol",
        "file": "./IRiskpool.sol",
        "id": 5816,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 6545,
        "sourceUnit": 7651,
        "src": "66:25:15",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/components/Component.sol",
        "file": "./Component.sol",
        "id": 5817,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 6545,
        "sourceUnit": 5115,
        "src": "93:25:15",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IBundle.sol",
        "file": "../modules/IBundle.sol",
        "id": 5818,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 6545,
        "sourceUnit": 3613,
        "src": "122:32:15",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/modules/IPolicy.sol",
        "file": "../modules/IPolicy.sol",
        "id": 5819,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 6545,
        "sourceUnit": 3959,
        "src": "156:32:15",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IInstanceService.sol",
        "file": "../services/IInstanceService.sol",
        "id": 5820,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 6545,
        "sourceUnit": 5669,
        "src": "190:42:15",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/services/IRiskpoolService.sol",
        "file": "../services/IRiskpoolService.sol",
        "id": 5821,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 6545,
        "sourceUnit": 7418,
        "src": "234:42:15",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "absolutePath": "/home/runner/.brownie/packages/OpenZeppelin/openzeppelin-contracts@4.8.2/contracts/token/ERC721/IERC721.sol",
        "file": "@openzeppelin/contracts/token/ERC721/IERC721.sol",
        "id": 5822,
        "nameLocation": "-1:-1:-1",
        "nodeType": "ImportDirective",
        "scope": 6545,
        "sourceUnit": 6661,
        "src": "280:58:15",
        "symbolAliases": [],
        "unitAlias": ""
      },
      {
        "abstract": true,
        "baseContracts": [
          {
            "baseName": {
              "id": 5823,
              "name": "IRiskpool",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 7650,
              "src": "378:9:15"
            },
            "id": 5824,
            "nodeType": "InheritanceSpecifier",
            "src": "378:9:15"
          },
          {
            "baseName": {
              "id": 5825,
              "name": "Component",
              "nodeType": "IdentifierPath",
              "referencedDeclaration": 5114,
              "src": "395:9:15"
            },
            "id": 5826,
            "nodeType": "InheritanceSpecifier",
            "src": "395:9:15"
          }
        ],
        "contractDependencies": [
          5114,
          5218,
          6682,
          6795,
          6911,
          7650
        ],
        "contractKind": "contract",
        "fullyImplemented": false,
        "id": 6544,
        "linearizedBaseContracts": [
          6544,
          5114,
          6795,
          6682,
          6911,
          7650,
          5218
        ],
        "name": "Riskpool",
        "nameLocation": "360:8:15",
        "nodeType": "ContractDefinition",
        "nodes": [
          {
            "constant": true,
            "functionSelector": "45fe1c6d",
            "id": 5831,
            "mutability": "constant",
            "name": "FULL_COLLATERALIZATION_LEVEL",
            "nameLocation": "604:28:15",
            "nodeType": "VariableDeclaration",
            "scope": 6544,
            "src": "580:61:15",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 5827,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "580:7:15",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "value": {
              "commonType": {
                "typeIdentifier": "t_rational_1000000000000000000_by_1",
                "typeString": "int_const 1000000000000000000"
              },
              "id": 5830,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "lValueRequested": false,
              "leftExpression": {
                "hexValue": "3130",
                "id": 5828,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "635:2:15",
                "typeDescriptions": {
                  "typeIdentifier": "t_rational_10_by_1",
                  "typeString": "int_const 10"
                },
                "value": "10"
              },
              "nodeType": "BinaryOperation",
              "operator": "**",
              "rightExpression": {
                "hexValue": "3138",
                "id": 5829,
                "isConstant": false,
                "isLValue": false,
                "isPure": true,
                "kind": "number",
                "lValueRequested": false,
                "nodeType": "Literal",
                "src": "639:2:15",
                "typeDescriptions": {
                  "typeIdentifier": "t_rational_18_by_1",
                  "typeString": "int_const 18"
                },
                "value": "18"
              },
              "src": "635:6:15",
              "typeDescriptions": {
                "typeIdentifier": "t_rational_1000000000000000000_by_1",
                "typeString": "int_const 1000000000000000000"
              }
            },
            "visibility": "public"
          },
          {
            "constant": true,
            "functionSelector": "7893c7bc",
            "id": 5834,
            "mutability": "constant",
            "name": "DEFAULT_FILTER_DATA_STRUCTURE",
            "nameLocation": "671:29:15",
            "nodeType": "VariableDeclaration",
            "scope": 6544,
            "src": "648:57:15",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_string_memory_ptr",
              "typeString": "string"
            },
            "typeName": {
              "id": 5832,
              "name": "string",
              "nodeType": "ElementaryTypeName",
              "src": "648:6:15",
              "typeDescriptions": {
                "typeIdentifier": "t_string_storage_ptr",
                "typeString": "string"
              }
            },
            "value": {
              "hexValue": "",
              "id": 5833,
              "isConstant": false,
              "isLValue": false,
              "isPure": true,
              "kind": "string",
              "lValueRequested": false,
              "nodeType": "Literal",
              "src": "703:2:15",
              "typeDescriptions": {
                "typeIdentifier": "t_stringliteral_c5d2460186f7233c927e7db2dcc703c0e500b653ca82273b7bfad8045d85a470",
                "typeString": "literal_string \"\""
              },
              "value": ""
            },
            "visibility": "public"
          },
          {
            "constant": false,
            "id": 5837,
            "mutability": "mutable",
            "name": "_instanceService",
            "nameLocation": "740:16:15",
            "nodeType": "VariableDeclaration",
            "scope": 6544,
            "src": "714:42:15",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_IInstanceService_$5668",
              "typeString": "contract IInstanceService"
            },
            "typeName": {
              "id": 5836,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 5835,
                "name": "IInstanceService",
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 5668,
                "src": "714:16:15"
              },
              "referencedDeclaration": 5668,
              "src": "714:16:15",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IInstanceService_$5668",
                "typeString": "contract IInstanceService"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 5840,
            "mutability": "mutable",
            "name": "_riskpoolService",
            "nameLocation": "790:16:15",
            "nodeType": "VariableDeclaration",
            "scope": 6544,
            "src": "764:42:15",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_IRiskpoolService_$7417",
              "typeString": "contract IRiskpoolService"
            },
            "typeName": {
              "id": 5839,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 5838,
                "name": "IRiskpoolService",
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 7417,
                "src": "764:16:15"
              },
              "referencedDeclaration": 7417,
              "src": "764:16:15",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IRiskpoolService_$7417",
                "typeString": "contract IRiskpoolService"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 5843,
            "mutability": "mutable",
            "name": "_bundleToken",
            "nameLocation": "830:12:15",
            "nodeType": "VariableDeclaration",
            "scope": 6544,
            "src": "813:29:15",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_contract$_IERC721_$6660",
              "typeString": "contract IERC721"
            },
            "typeName": {
              "id": 5842,
              "nodeType": "UserDefinedTypeName",
              "pathNode": {
                "id": 5841,
                "name": "IERC721",
                "nodeType": "IdentifierPath",
                "referencedDeclaration": 6660,
                "src": "813:7:15"
              },
              "referencedDeclaration": 6660,
              "src": "813:7:15",
              "typeDescriptions": {
                "typeIdentifier": "t_contract$_IERC721_$6660",
                "typeString": "contract IERC721"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 5846,
            "mutability": "mutable",
            "name": "_bundleIds",
            "nameLocation": "935:10:15",
            "nodeType": "VariableDeclaration",
            "scope": 6544,
            "src": "915:30:15",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
              "typeString": "uint256[]"
            },
            "typeName": {
              "baseType": {
                "id": 5844,
                "name": "uint256",
                "nodeType": "ElementaryTypeName",
                "src": "915:7:15",
                "typeDescriptions": {
                  "typeIdentifier": "t_uint256",
                  "typeString": "uint256"
                }
              },
              "id": 5845,
              "nodeType": "ArrayTypeName",
              "src": "915:10:15",
              "typeDescriptions": {
                "typeIdentifier": "t_array$_t_uint256_$dyn_storage_ptr",
                "typeString": "uint256[]"
              }
            },
            "visibility": "internal"
          },
          {
            "constant": false,
            "id": 5848,
            "mutability": "mutable",
            "name": "_wallet",
            "nameLocation": "970:7:15",
            "nodeType": "VariableDeclaration",
            "scope": 6544,
            "src": "954:23:15",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 5847,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "954:7:15",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 5850,
            "mutability": "mutable",
            "name": "_erc20Token",
            "nameLocation": "1000:11:15",
            "nodeType": "VariableDeclaration",
            "scope": 6544,
            "src": "984:27:15",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_address",
              "typeString": "address"
            },
            "typeName": {
              "id": 5849,
              "name": "address",
              "nodeType": "ElementaryTypeName",
              "src": "984:7:15",
              "stateMutability": "nonpayable",
              "typeDescriptions": {
                "typeIdentifier": "t_address",
                "typeString": "address"
              }
            },
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 5852,
            "mutability": "mutable",
            "name": "_collateralization",
            "nameLocation": "1034:18:15",
            "nodeType": "VariableDeclaration",
            "scope": 6544,
            "src": "1018:34:15",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 5851,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1018:7:15",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 5854,
            "mutability": "mutable",
            "name": "_sumOfSumInsuredCap",
            "nameLocation": "1075:19:15",
            "nodeType": "VariableDeclaration",
            "scope": 6544,
            "src": "1059:35:15",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 5853,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1059:7:15",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "private"
          },
          {
            "constant": false,
            "id": 5856,
            "mutability": "mutable",
            "name": "_maxNumberOfActiveBundles",
            "nameLocation": "1117:25:15",
            "nodeType": "VariableDeclaration",
            "scope": 6544,
            "src": "1101:41:15",
            "stateVariable": true,
            "storageLocation": "default",
            "typeDescriptions": {
              "typeIdentifier": "t_uint256",
              "typeString": "uint256"
            },
            "typeName": {
              "id": 5855,
              "name": "uint256",
              "nodeType": "ElementaryTypeName",
              "src": "1101:7:15",
              "typeDescriptions": {
                "typeIdentifier": "t_uint256",
                "typeString": "uint256"
              }
            },
            "visibility": "private"
          },
          {
            "body": {
              "id": 5869,
              "nodeType": "Block",
              "src": "1169:151:15",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 5864,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 5859,
                            "name": "_msgSender",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6672,
                            "src": "1202:10:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                              "typeString": "function () view returns (address)"
                            }
                          },
                          "id": 5860,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1202:12:15",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "arguments": [
                            {
                              "hexValue": "506f6f6c",
                              "id": 5862,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "1238:6:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f",
                                "typeString": "literal_string \"Pool\""
                              },
                              "value": "Pool"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_stringliteral_4a62f5c1187999cdd374fd40d850be57b4952a965136e01501e2ac9ed75fe27f",
                                "typeString": "literal_string \"Pool\""
                              }
                            ],
                            "id": 5861,
                            "name": "_getContractAddress",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5113,
                            "src": "1218:19:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                              "typeString": "function (bytes32) view returns (address)"
                            }
                          },
                          "id": 5863,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1218:27:15",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "1202:43:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552524f523a52504c2d3030313a4143434553535f44454e494544",
                        "id": 5865,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1260:29:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_f210ad6881c3bcfe6eee67ece1d0f357ecc667e4ab67d69f8ab3ef73d4a985c4",
                          "typeString": "literal_string \"ERROR:RPL-001:ACCESS_DENIED\""
                        },
                        "value": "ERROR:RPL-001:ACCESS_DENIED"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_f210ad6881c3bcfe6eee67ece1d0f357ecc667e4ab67d69f8ab3ef73d4a985c4",
                          "typeString": "literal_string \"ERROR:RPL-001:ACCESS_DENIED\""
                        }
                      ],
                      "id": 5858,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "1180:7:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5866,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1180:120:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5867,
                  "nodeType": "ExpressionStatement",
                  "src": "1180:120:15"
                },
                {
                  "id": 5868,
                  "nodeType": "PlaceholderStatement",
                  "src": "1311:1:15"
                }
              ]
            },
            "id": 5870,
            "name": "onlyPool",
            "nameLocation": "1160:8:15",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 5857,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1169:0:15"
            },
            "src": "1151:169:15",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5901,
              "nodeType": "Block",
              "src": "1371:287:15",
              "statements": [
                {
                  "assignments": [
                    5878
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5878,
                      "mutability": "mutable",
                      "name": "bundle",
                      "nameLocation": "1404:6:15",
                      "nodeType": "VariableDeclaration",
                      "scope": 5901,
                      "src": "1382:28:15",
                      "stateVariable": false,
                      "storageLocation": "memory",
                      "typeDescriptions": {
                        "typeIdentifier": "t_struct$_Bundle_$3528_memory_ptr",
                        "typeString": "struct IBundle.Bundle"
                      },
                      "typeName": {
                        "id": 5877,
                        "nodeType": "UserDefinedTypeName",
                        "pathNode": {
                          "id": 5876,
                          "name": "IBundle.Bundle",
                          "nodeType": "IdentifierPath",
                          "referencedDeclaration": 3528,
                          "src": "1382:14:15"
                        },
                        "referencedDeclaration": 3528,
                        "src": "1382:14:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_struct$_Bundle_$3528_storage_ptr",
                          "typeString": "struct IBundle.Bundle"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 5883,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 5881,
                        "name": "bundleId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5872,
                        "src": "1440:8:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 5879,
                        "name": "_instanceService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5837,
                        "src": "1413:16:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IInstanceService_$5668",
                          "typeString": "contract IInstanceService"
                        }
                      },
                      "id": 5880,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getBundle",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 5567,
                      "src": "1413:26:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_Bundle_$3528_memory_ptr_$",
                        "typeString": "function (uint256) view external returns (struct IBundle.Bundle memory)"
                      }
                    },
                    "id": 5882,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1413:36:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bundle_$3528_memory_ptr",
                      "typeString": "struct IBundle.Bundle memory"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1382:67:15"
                },
                {
                  "assignments": [
                    5885
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 5885,
                      "mutability": "mutable",
                      "name": "bundleOwner",
                      "nameLocation": "1468:11:15",
                      "nodeType": "VariableDeclaration",
                      "scope": 5901,
                      "src": "1460:19:15",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 5884,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "1460:7:15",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 5891,
                  "initialValue": {
                    "arguments": [
                      {
                        "expression": {
                          "id": 5888,
                          "name": "bundle",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5878,
                          "src": "1503:6:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_struct$_Bundle_$3528_memory_ptr",
                            "typeString": "struct IBundle.Bundle memory"
                          }
                        },
                        "id": 5889,
                        "isConstant": false,
                        "isLValue": true,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "tokenId",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 3512,
                        "src": "1503:14:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 5886,
                        "name": "_bundleToken",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5843,
                        "src": "1482:12:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IERC721_$6660",
                          "typeString": "contract IERC721"
                        }
                      },
                      "id": 5887,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "ownerOf",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 6593,
                      "src": "1482:20:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_address_$",
                        "typeString": "function (uint256) view external returns (address)"
                      }
                    },
                    "id": 5890,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1482:36:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "1460:58:15"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 5896,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [],
                          "expression": {
                            "argumentTypes": [],
                            "id": 5893,
                            "name": "_msgSender",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 6672,
                            "src": "1553:10:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                              "typeString": "function () view returns (address)"
                            }
                          },
                          "id": 5894,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "1553:12:15",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "id": 5895,
                          "name": "bundleOwner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5885,
                          "src": "1569:11:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "1553:27:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552524f523a4255432d3030313a4e4f545f42554e444c455f4f574e4552",
                        "id": 5897,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "1595:32:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_a3fee6bb914432e1b8acb32301ab61e820334d80172f7ccf3c09865b96135a22",
                          "typeString": "literal_string \"ERROR:BUC-001:NOT_BUNDLE_OWNER\""
                        },
                        "value": "ERROR:BUC-001:NOT_BUNDLE_OWNER"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_a3fee6bb914432e1b8acb32301ab61e820334d80172f7ccf3c09865b96135a22",
                          "typeString": "literal_string \"ERROR:BUC-001:NOT_BUNDLE_OWNER\""
                        }
                      ],
                      "id": 5892,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "1531:7:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5898,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1531:107:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5899,
                  "nodeType": "ExpressionStatement",
                  "src": "1531:107:15"
                },
                {
                  "id": 5900,
                  "nodeType": "PlaceholderStatement",
                  "src": "1649:1:15"
                }
              ]
            },
            "id": 5902,
            "name": "onlyBundleOwner",
            "nameLocation": "1337:15:15",
            "nodeType": "ModifierDefinition",
            "parameters": {
              "id": 5873,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5872,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "1361:8:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 5902,
                  "src": "1353:16:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5871,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1353:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1352:18:15"
            },
            "src": "1328:330:15",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "body": {
              "id": 5988,
              "nodeType": "Block",
              "src": "1926:656:15",
              "statements": [
                {
                  "expression": {
                    "id": 5925,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 5923,
                      "name": "_collateralization",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5852,
                      "src": "1938:18:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 5924,
                      "name": "collateralization",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5906,
                      "src": "1959:17:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "1938:38:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5926,
                  "nodeType": "ExpressionStatement",
                  "src": "1938:38:15"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 5930,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 5928,
                          "name": "sumOfSumInsuredCap",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5908,
                          "src": "1997:18:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 5929,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "2019:1:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "1997:23:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552524f523a52504c2d3030323a53554d5f4f465f53554d5f494e53555245445f4341505f5a45524f",
                        "id": 5931,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2022:43:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_f9ae47d1eb7b15726365eb220cfb2035a2cbaaa79180bda7a61981a473c73992",
                          "typeString": "literal_string \"ERROR:RPL-002:SUM_OF_SUM_INSURED_CAP_ZERO\""
                        },
                        "value": "ERROR:RPL-002:SUM_OF_SUM_INSURED_CAP_ZERO"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_f9ae47d1eb7b15726365eb220cfb2035a2cbaaa79180bda7a61981a473c73992",
                          "typeString": "literal_string \"ERROR:RPL-002:SUM_OF_SUM_INSURED_CAP_ZERO\""
                        }
                      ],
                      "id": 5927,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "1989:7:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5932,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "1989:77:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5933,
                  "nodeType": "ExpressionStatement",
                  "src": "1989:77:15"
                },
                {
                  "expression": {
                    "id": 5936,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 5934,
                      "name": "_sumOfSumInsuredCap",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5854,
                      "src": "2077:19:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 5935,
                      "name": "sumOfSumInsuredCap",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5908,
                      "src": "2099:18:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "2077:40:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 5937,
                  "nodeType": "ExpressionStatement",
                  "src": "2077:40:15"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 5944,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 5939,
                          "name": "erc20Token",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5910,
                          "src": "2138:10:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "arguments": [
                            {
                              "hexValue": "30",
                              "id": 5942,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2160:1:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 5941,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "2152:7:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 5940,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "2152:7:15",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 5943,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2152:10:15",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "2138:24:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552524f523a52504c2d3030333a45524332305f414444524553535f5a45524f",
                        "id": 5945,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2164:34:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_abdad5066ef58fdc9cd8980c3154ff17135422a93e3f8c33e7de03203e1653c6",
                          "typeString": "literal_string \"ERROR:RPL-003:ERC20_ADDRESS_ZERO\""
                        },
                        "value": "ERROR:RPL-003:ERC20_ADDRESS_ZERO"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_abdad5066ef58fdc9cd8980c3154ff17135422a93e3f8c33e7de03203e1653c6",
                          "typeString": "literal_string \"ERROR:RPL-003:ERC20_ADDRESS_ZERO\""
                        }
                      ],
                      "id": 5938,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "2130:7:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5946,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2130:69:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5947,
                  "nodeType": "ExpressionStatement",
                  "src": "2130:69:15"
                },
                {
                  "expression": {
                    "id": 5950,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 5948,
                      "name": "_erc20Token",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5850,
                      "src": "2210:11:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 5949,
                      "name": "erc20Token",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5910,
                      "src": "2224:10:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "2210:24:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 5951,
                  "nodeType": "ExpressionStatement",
                  "src": "2210:24:15"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        "id": 5958,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 5953,
                          "name": "wallet",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5912,
                          "src": "2255:6:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "!=",
                        "rightExpression": {
                          "arguments": [
                            {
                              "hexValue": "30",
                              "id": 5956,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "number",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2273:1:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              },
                              "value": "0"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_rational_0_by_1",
                                "typeString": "int_const 0"
                              }
                            ],
                            "id": 5955,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": true,
                            "lValueRequested": false,
                            "nodeType": "ElementaryTypeNameExpression",
                            "src": "2265:7:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_type$_t_address_$",
                              "typeString": "type(address)"
                            },
                            "typeName": {
                              "id": 5954,
                              "name": "address",
                              "nodeType": "ElementaryTypeName",
                              "src": "2265:7:15",
                              "typeDescriptions": {}
                            }
                          },
                          "id": 5957,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "typeConversion",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2265:10:15",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        "src": "2255:20:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552524f523a52504c2d3030343a57414c4c45545f414444524553535f5a45524f",
                        "id": 5959,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "2277:35:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_f37ca57d997cf850dbd93faaa263fce2fe960fe8dfe0b3a08578cb870d3e527a",
                          "typeString": "literal_string \"ERROR:RPL-004:WALLET_ADDRESS_ZERO\""
                        },
                        "value": "ERROR:RPL-004:WALLET_ADDRESS_ZERO"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_f37ca57d997cf850dbd93faaa263fce2fe960fe8dfe0b3a08578cb870d3e527a",
                          "typeString": "literal_string \"ERROR:RPL-004:WALLET_ADDRESS_ZERO\""
                        }
                      ],
                      "id": 5952,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "2247:7:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 5960,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2247:66:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 5961,
                  "nodeType": "ExpressionStatement",
                  "src": "2247:66:15"
                },
                {
                  "expression": {
                    "id": 5964,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 5962,
                      "name": "_wallet",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5848,
                      "src": "2324:7:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "id": 5963,
                      "name": "wallet",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5912,
                      "src": "2334:6:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      }
                    },
                    "src": "2324:16:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "id": 5965,
                  "nodeType": "ExpressionStatement",
                  "src": "2324:16:15"
                },
                {
                  "expression": {
                    "id": 5972,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 5966,
                      "name": "_instanceService",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5837,
                      "src": "2353:16:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IInstanceService_$5668",
                        "typeString": "contract IInstanceService"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "arguments": [
                            {
                              "hexValue": "496e7374616e636553657276696365",
                              "id": 5969,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2409:17:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_9d0370d7b33c0a7e946fd67f2013156c598b4d6a70b1490bc73aacf4dc1a6f52",
                                "typeString": "literal_string \"InstanceService\""
                              },
                              "value": "InstanceService"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_stringliteral_9d0370d7b33c0a7e946fd67f2013156c598b4d6a70b1490bc73aacf4dc1a6f52",
                                "typeString": "literal_string \"InstanceService\""
                              }
                            ],
                            "id": 5968,
                            "name": "_getContractAddress",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5113,
                            "src": "2389:19:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                              "typeString": "function (bytes32) view returns (address)"
                            }
                          },
                          "id": 5970,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2389:38:15",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 5967,
                        "name": "IInstanceService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5668,
                        "src": "2372:16:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_IInstanceService_$5668_$",
                          "typeString": "type(contract IInstanceService)"
                        }
                      },
                      "id": 5971,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2372:56:15",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IInstanceService_$5668",
                        "typeString": "contract IInstanceService"
                      }
                    },
                    "src": "2353:75:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IInstanceService_$5668",
                      "typeString": "contract IInstanceService"
                    }
                  },
                  "id": 5973,
                  "nodeType": "ExpressionStatement",
                  "src": "2353:75:15"
                },
                {
                  "expression": {
                    "id": 5980,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 5974,
                      "name": "_riskpoolService",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5840,
                      "src": "2440:16:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IRiskpoolService_$7417",
                        "typeString": "contract IRiskpoolService"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "arguments": [
                            {
                              "hexValue": "5269736b706f6f6c53657276696365",
                              "id": 5977,
                              "isConstant": false,
                              "isLValue": false,
                              "isPure": true,
                              "kind": "string",
                              "lValueRequested": false,
                              "nodeType": "Literal",
                              "src": "2496:17:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_stringliteral_e85801e7370f8299b20de95f253b0d76ea9617d54202cf651cae4bfb65abf86a",
                                "typeString": "literal_string \"RiskpoolService\""
                              },
                              "value": "RiskpoolService"
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_stringliteral_e85801e7370f8299b20de95f253b0d76ea9617d54202cf651cae4bfb65abf86a",
                                "typeString": "literal_string \"RiskpoolService\""
                              }
                            ],
                            "id": 5976,
                            "name": "_getContractAddress",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5113,
                            "src": "2476:19:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_internal_view$_t_bytes32_$returns$_t_address_$",
                              "typeString": "function (bytes32) view returns (address)"
                            }
                          },
                          "id": 5978,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "2476:38:15",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        ],
                        "id": 5975,
                        "name": "IRiskpoolService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 7417,
                        "src": "2459:16:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_type$_t_contract$_IRiskpoolService_$7417_$",
                          "typeString": "type(contract IRiskpoolService)"
                        }
                      },
                      "id": 5979,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "typeConversion",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2459:56:15",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IRiskpoolService_$7417",
                        "typeString": "contract IRiskpoolService"
                      }
                    },
                    "src": "2440:75:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IRiskpoolService_$7417",
                      "typeString": "contract IRiskpoolService"
                    }
                  },
                  "id": 5981,
                  "nodeType": "ExpressionStatement",
                  "src": "2440:75:15"
                },
                {
                  "expression": {
                    "id": 5986,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 5982,
                      "name": "_bundleToken",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5843,
                      "src": "2526:12:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IERC721_$6660",
                        "typeString": "contract IERC721"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [],
                      "expression": {
                        "argumentTypes": [],
                        "expression": {
                          "id": 5983,
                          "name": "_instanceService",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5837,
                          "src": "2541:16:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IInstanceService_$5668",
                            "typeString": "contract IInstanceService"
                          }
                        },
                        "id": 5984,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "getBundleToken",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 5554,
                        "src": "2541:31:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_view$__$returns$_t_contract$_IBundleToken_$4029_$",
                          "typeString": "function () view external returns (contract IBundleToken)"
                        }
                      },
                      "id": 5985,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "2541:33:15",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_contract$_IBundleToken_$4029",
                        "typeString": "contract IBundleToken"
                      }
                    },
                    "src": "2526:48:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_contract$_IERC721_$6660",
                      "typeString": "contract IERC721"
                    }
                  },
                  "id": 5987,
                  "nodeType": "ExpressionStatement",
                  "src": "2526:48:15"
                }
              ]
            },
            "id": 5989,
            "implemented": true,
            "kind": "constructor",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 5917,
                    "name": "name",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5904,
                    "src": "1881:4:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  {
                    "expression": {
                      "id": 5918,
                      "name": "ComponentType",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5121,
                      "src": "1887:13:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_type$_t_enum$_ComponentType_$5121_$",
                        "typeString": "type(enum IComponent.ComponentType)"
                      }
                    },
                    "id": 5919,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": true,
                    "lValueRequested": false,
                    "memberName": "Riskpool",
                    "nodeType": "MemberAccess",
                    "referencedDeclaration": 5120,
                    "src": "1887:22:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_enum$_ComponentType_$5121",
                      "typeString": "enum IComponent.ComponentType"
                    }
                  },
                  {
                    "id": 5920,
                    "name": "registry",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5914,
                    "src": "1911:8:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  }
                ],
                "id": 5921,
                "modifierName": {
                  "id": 5916,
                  "name": "Component",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 5114,
                  "src": "1871:9:15"
                },
                "nodeType": "ModifierInvocation",
                "src": "1871:49:15"
              }
            ],
            "name": "",
            "nameLocation": "-1:-1:-1",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 5915,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 5904,
                  "mutability": "mutable",
                  "name": "name",
                  "nameLocation": "1696:4:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 5989,
                  "src": "1688:12:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 5903,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "1688:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5906,
                  "mutability": "mutable",
                  "name": "collateralization",
                  "nameLocation": "1719:17:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 5989,
                  "src": "1711:25:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5905,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1711:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5908,
                  "mutability": "mutable",
                  "name": "sumOfSumInsuredCap",
                  "nameLocation": "1755:18:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 5989,
                  "src": "1747:26:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 5907,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "1747:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5910,
                  "mutability": "mutable",
                  "name": "erc20Token",
                  "nameLocation": "1792:10:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 5989,
                  "src": "1784:18:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5909,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1784:7:15",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5912,
                  "mutability": "mutable",
                  "name": "wallet",
                  "nameLocation": "1821:6:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 5989,
                  "src": "1813:14:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5911,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1813:7:15",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 5914,
                  "mutability": "mutable",
                  "name": "registry",
                  "nameLocation": "1846:8:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 5989,
                  "src": "1838:16:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 5913,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "1838:7:15",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "1677:184:15"
            },
            "returnParameters": {
              "id": 5922,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "1926:0:15"
            },
            "scope": 6544,
            "src": "1666:916:15",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              5033
            ],
            "body": {
              "id": 6002,
              "nodeType": "Block",
              "src": "2641:179:15",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 5996,
                        "name": "_wallet",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5848,
                        "src": "2700:7:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 5997,
                        "name": "_erc20Token",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5850,
                        "src": "2722:11:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      {
                        "id": 5998,
                        "name": "_collateralization",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5852,
                        "src": "2749:18:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 5999,
                        "name": "_sumOfSumInsuredCap",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5854,
                        "src": "2782:19:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 5993,
                        "name": "_riskpoolService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5840,
                        "src": "2652:16:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IRiskpoolService_$7417",
                          "typeString": "contract IRiskpoolService"
                        }
                      },
                      "id": 5995,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "registerRiskpool",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7324,
                      "src": "2652:33:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_address_$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (address,address,uint256,uint256) external"
                      }
                    },
                    "id": 6000,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "2652:160:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6001,
                  "nodeType": "ExpressionStatement",
                  "src": "2652:160:15"
                }
              ]
            },
            "id": 6003,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_afterPropose",
            "nameLocation": "2599:13:15",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 5991,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2624:8:15"
            },
            "parameters": {
              "id": 5990,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2612:2:15"
            },
            "returnParameters": {
              "id": 5992,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "2641:0:15"
            },
            "scope": 6544,
            "src": "2590:230:15",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "baseFunctions": [
              7487
            ],
            "body": {
              "id": 6038,
              "nodeType": "Block",
              "src": "2968:243:15",
              "statements": [
                {
                  "assignments": [
                    6014
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6014,
                      "mutability": "mutable",
                      "name": "bundleOwner",
                      "nameLocation": "2987:11:15",
                      "nodeType": "VariableDeclaration",
                      "scope": 6038,
                      "src": "2979:19:15",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_address",
                        "typeString": "address"
                      },
                      "typeName": {
                        "id": 6013,
                        "name": "address",
                        "nodeType": "ElementaryTypeName",
                        "src": "2979:7:15",
                        "stateMutability": "nonpayable",
                        "typeDescriptions": {
                          "typeIdentifier": "t_address",
                          "typeString": "address"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 6017,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 6015,
                      "name": "_msgSender",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6672,
                      "src": "3001:10:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_address_$",
                        "typeString": "function () view returns (address)"
                      }
                    },
                    "id": 6016,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3001:12:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "2979:34:15"
                },
                {
                  "expression": {
                    "id": 6025,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 6018,
                      "name": "bundleId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6011,
                      "src": "3024:8:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 6021,
                          "name": "bundleOwner",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6014,
                          "src": "3065:11:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          }
                        },
                        {
                          "id": 6022,
                          "name": "filter",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6005,
                          "src": "3078:6:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          }
                        },
                        {
                          "id": 6023,
                          "name": "initialAmount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6007,
                          "src": "3086:13:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_address",
                            "typeString": "address"
                          },
                          {
                            "typeIdentifier": "t_bytes_memory_ptr",
                            "typeString": "bytes memory"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "id": 6019,
                          "name": "_riskpoolService",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5840,
                          "src": "3035:16:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IRiskpoolService_$7417",
                            "typeString": "contract IRiskpoolService"
                          }
                        },
                        "id": 6020,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "createBundle",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7335,
                        "src": "3035:29:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_nonpayable$_t_address_$_t_bytes_memory_ptr_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (address,bytes memory,uint256) external returns (uint256)"
                        }
                      },
                      "id": 6024,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3035:65:15",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3024:76:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 6026,
                  "nodeType": "ExpressionStatement",
                  "src": "3024:76:15"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6030,
                        "name": "bundleId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6011,
                        "src": "3127:8:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 6027,
                        "name": "_bundleIds",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5846,
                        "src": "3111:10:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                          "typeString": "uint256[] storage ref"
                        }
                      },
                      "id": 6029,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "push",
                      "nodeType": "MemberAccess",
                      "src": "3111:15:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_arraypush_nonpayable$_t_array$_t_uint256_$dyn_storage_ptr_$_t_uint256_$returns$__$bound_to$_t_array$_t_uint256_$dyn_storage_ptr_$",
                        "typeString": "function (uint256[] storage pointer,uint256)"
                      }
                    },
                    "id": 6031,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3111:25:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6032,
                  "nodeType": "ExpressionStatement",
                  "src": "3111:25:15"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 6034,
                        "name": "bundleId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6011,
                        "src": "3179:8:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 6035,
                        "name": "initialAmount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6007,
                        "src": "3189:13:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 6033,
                      "name": "LogRiskpoolBundleCreated",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7446,
                      "src": "3154:24:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (uint256,uint256)"
                      }
                    },
                    "id": 6036,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3154:49:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6037,
                  "nodeType": "EmitStatement",
                  "src": "3149:54:15"
                }
              ]
            },
            "functionSelector": "7888a2ff",
            "id": 6039,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "createBundle",
            "nameLocation": "2837:12:15",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6009,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "2919:8:15"
            },
            "parameters": {
              "id": 6008,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6005,
                  "mutability": "mutable",
                  "name": "filter",
                  "nameLocation": "2863:6:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6039,
                  "src": "2850:19:15",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes_memory_ptr",
                    "typeString": "bytes"
                  },
                  "typeName": {
                    "id": 6004,
                    "name": "bytes",
                    "nodeType": "ElementaryTypeName",
                    "src": "2850:5:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes_storage_ptr",
                      "typeString": "bytes"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6007,
                  "mutability": "mutable",
                  "name": "initialAmount",
                  "nameLocation": "2879:13:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6039,
                  "src": "2871:21:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6006,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2871:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2849:44:15"
            },
            "returnParameters": {
              "id": 6012,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6011,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "2953:8:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6039,
                  "src": "2945:16:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6010,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "2945:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "2944:18:15"
            },
            "scope": 6544,
            "src": "2828:383:15",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              7496
            ],
            "body": {
              "id": 6060,
              "nodeType": "Block",
              "src": "3377:76:15",
              "statements": [
                {
                  "expression": {
                    "id": 6058,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 6052,
                      "name": "netAmount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6050,
                      "src": "3388:9:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 6055,
                          "name": "bundleId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6041,
                          "src": "3428:8:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "id": 6056,
                          "name": "amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6043,
                          "src": "3438:6:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "id": 6053,
                          "name": "_riskpoolService",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5840,
                          "src": "3400:16:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IRiskpoolService_$7417",
                            "typeString": "contract IRiskpoolService"
                          }
                        },
                        "id": 6054,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "fundBundle",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7344,
                        "src": "3400:27:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (uint256,uint256) external returns (uint256)"
                        }
                      },
                      "id": 6057,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3400:45:15",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3388:57:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 6059,
                  "nodeType": "ExpressionStatement",
                  "src": "3388:57:15"
                }
              ]
            },
            "functionSelector": "89002da5",
            "id": 6061,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 6047,
                    "name": "bundleId",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6041,
                    "src": "3326:8:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 6048,
                "modifierName": {
                  "id": 6046,
                  "name": "onlyBundleOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 5902,
                  "src": "3310:15:15"
                },
                "nodeType": "ModifierInvocation",
                "src": "3310:25:15"
              }
            ],
            "name": "fundBundle",
            "nameLocation": "3228:10:15",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6045,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3292:8:15"
            },
            "parameters": {
              "id": 6044,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6041,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "3247:8:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6061,
                  "src": "3239:16:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6040,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3239:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6043,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "3265:6:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6061,
                  "src": "3257:14:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6042,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3257:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3238:34:15"
            },
            "returnParameters": {
              "id": 6051,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6050,
                  "mutability": "mutable",
                  "name": "netAmount",
                  "nameLocation": "3361:9:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6061,
                  "src": "3353:17:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6049,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3353:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3352:19:15"
            },
            "scope": 6544,
            "src": "3219:234:15",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              7505
            ],
            "body": {
              "id": 6082,
              "nodeType": "Block",
              "src": "3620:78:15",
              "statements": [
                {
                  "expression": {
                    "id": 6080,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 6074,
                      "name": "netAmount",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6072,
                      "src": "3631:9:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 6077,
                          "name": "bundleId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6063,
                          "src": "3673:8:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        {
                          "id": 6078,
                          "name": "amount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6065,
                          "src": "3683:6:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "expression": {
                          "id": 6075,
                          "name": "_riskpoolService",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 5840,
                          "src": "3643:16:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_contract$_IRiskpoolService_$7417",
                            "typeString": "contract IRiskpoolService"
                          }
                        },
                        "id": 6076,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "memberName": "defundBundle",
                        "nodeType": "MemberAccess",
                        "referencedDeclaration": 7353,
                        "src": "3643:29:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                          "typeString": "function (uint256,uint256) external returns (uint256)"
                        }
                      },
                      "id": 6079,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "3643:47:15",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "src": "3631:59:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "id": 6081,
                  "nodeType": "ExpressionStatement",
                  "src": "3631:59:15"
                }
              ]
            },
            "functionSelector": "36153f3a",
            "id": 6083,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 6069,
                    "name": "bundleId",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6063,
                    "src": "3569:8:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 6070,
                "modifierName": {
                  "id": 6068,
                  "name": "onlyBundleOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 5902,
                  "src": "3553:15:15"
                },
                "nodeType": "ModifierInvocation",
                "src": "3553:25:15"
              }
            ],
            "name": "defundBundle",
            "nameLocation": "3470:12:15",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6067,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3535:8:15"
            },
            "parameters": {
              "id": 6066,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6063,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "3491:8:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6083,
                  "src": "3483:16:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6062,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3483:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6065,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "3509:6:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6083,
                  "src": "3501:14:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6064,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3501:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3482:34:15"
            },
            "returnParameters": {
              "id": 6073,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6072,
                  "mutability": "mutable",
                  "name": "netAmount",
                  "nameLocation": "3604:9:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6083,
                  "src": "3596:17:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6071,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3596:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3595:19:15"
            },
            "scope": 6544,
            "src": "3461:237:15",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              7510
            ],
            "body": {
              "id": 6098,
              "nodeType": "Block",
              "src": "3811:56:15",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6095,
                        "name": "bundleId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6085,
                        "src": "3850:8:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 6092,
                        "name": "_riskpoolService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5840,
                        "src": "3822:16:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IRiskpoolService_$7417",
                          "typeString": "contract IRiskpoolService"
                        }
                      },
                      "id": 6094,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "lockBundle",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7358,
                      "src": "3822:27:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 6096,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3822:37:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6097,
                  "nodeType": "ExpressionStatement",
                  "src": "3822:37:15"
                }
              ]
            },
            "functionSelector": "a17030d5",
            "id": 6099,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 6089,
                    "name": "bundleId",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6085,
                    "src": "3796:8:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 6090,
                "modifierName": {
                  "id": 6088,
                  "name": "onlyBundleOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 5902,
                  "src": "3780:15:15"
                },
                "nodeType": "ModifierInvocation",
                "src": "3780:25:15"
              }
            ],
            "name": "lockBundle",
            "nameLocation": "3715:10:15",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6087,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3762:8:15"
            },
            "parameters": {
              "id": 6086,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6085,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "3734:8:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6099,
                  "src": "3726:16:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6084,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3726:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3725:18:15"
            },
            "returnParameters": {
              "id": 6091,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3811:0:15"
            },
            "scope": 6544,
            "src": "3706:161:15",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              7515
            ],
            "body": {
              "id": 6114,
              "nodeType": "Block",
              "src": "3982:58:15",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6111,
                        "name": "bundleId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6101,
                        "src": "4023:8:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 6108,
                        "name": "_riskpoolService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5840,
                        "src": "3993:16:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IRiskpoolService_$7417",
                          "typeString": "contract IRiskpoolService"
                        }
                      },
                      "id": 6110,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "unlockBundle",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7363,
                      "src": "3993:29:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 6112,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "3993:39:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6113,
                  "nodeType": "ExpressionStatement",
                  "src": "3993:39:15"
                }
              ]
            },
            "functionSelector": "316c5348",
            "id": 6115,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 6105,
                    "name": "bundleId",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6101,
                    "src": "3967:8:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 6106,
                "modifierName": {
                  "id": 6104,
                  "name": "onlyBundleOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 5902,
                  "src": "3951:15:15"
                },
                "nodeType": "ModifierInvocation",
                "src": "3951:25:15"
              }
            ],
            "name": "unlockBundle",
            "nameLocation": "3884:12:15",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6103,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "3933:8:15"
            },
            "parameters": {
              "id": 6102,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6101,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "3905:8:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6115,
                  "src": "3897:16:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6100,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "3897:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "3896:18:15"
            },
            "returnParameters": {
              "id": 6107,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "3982:0:15"
            },
            "scope": 6544,
            "src": "3875:165:15",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              7520
            ],
            "body": {
              "id": 6130,
              "nodeType": "Block",
              "src": "4154:57:15",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6127,
                        "name": "bundleId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6117,
                        "src": "4194:8:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 6124,
                        "name": "_riskpoolService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5840,
                        "src": "4165:16:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IRiskpoolService_$7417",
                          "typeString": "contract IRiskpoolService"
                        }
                      },
                      "id": 6126,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "closeBundle",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7368,
                      "src": "4165:28:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 6128,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4165:38:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6129,
                  "nodeType": "ExpressionStatement",
                  "src": "4165:38:15"
                }
              ]
            },
            "functionSelector": "8c483e5a",
            "id": 6131,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 6121,
                    "name": "bundleId",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6117,
                    "src": "4139:8:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 6122,
                "modifierName": {
                  "id": 6120,
                  "name": "onlyBundleOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 5902,
                  "src": "4123:15:15"
                },
                "nodeType": "ModifierInvocation",
                "src": "4123:25:15"
              }
            ],
            "name": "closeBundle",
            "nameLocation": "4057:11:15",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6119,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4105:8:15"
            },
            "parameters": {
              "id": 6118,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6117,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "4077:8:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6131,
                  "src": "4069:16:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6116,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4069:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4068:18:15"
            },
            "returnParameters": {
              "id": 6123,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4154:0:15"
            },
            "scope": 6544,
            "src": "4048:163:15",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              7525
            ],
            "body": {
              "id": 6146,
              "nodeType": "Block",
              "src": "4324:56:15",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6143,
                        "name": "bundleId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6133,
                        "src": "4363:8:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 6140,
                        "name": "_riskpoolService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5840,
                        "src": "4335:16:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IRiskpoolService_$7417",
                          "typeString": "contract IRiskpoolService"
                        }
                      },
                      "id": 6142,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "burnBundle",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7373,
                      "src": "4335:27:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$returns$__$",
                        "typeString": "function (uint256) external"
                      }
                    },
                    "id": 6144,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4335:37:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6145,
                  "nodeType": "ExpressionStatement",
                  "src": "4335:37:15"
                }
              ]
            },
            "functionSelector": "587e59d0",
            "id": 6147,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "arguments": [
                  {
                    "id": 6137,
                    "name": "bundleId",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 6133,
                    "src": "4309:8:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  }
                ],
                "id": 6138,
                "modifierName": {
                  "id": 6136,
                  "name": "onlyBundleOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 5902,
                  "src": "4293:15:15"
                },
                "nodeType": "ModifierInvocation",
                "src": "4293:25:15"
              }
            ],
            "name": "burnBundle",
            "nameLocation": "4228:10:15",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6135,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4275:8:15"
            },
            "parameters": {
              "id": 6134,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6133,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "4247:8:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6147,
                  "src": "4239:16:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6132,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4239:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4238:18:15"
            },
            "returnParameters": {
              "id": 6139,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4324:0:15"
            },
            "scope": 6544,
            "src": "4219:161:15",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              7534
            ],
            "body": {
              "id": 6172,
              "nodeType": "Block",
              "src": "4545:154:15",
              "statements": [
                {
                  "expression": {
                    "id": 6164,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "leftHandSide": {
                      "id": 6159,
                      "name": "success",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6157,
                      "src": "4556:7:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "nodeType": "Assignment",
                    "operator": "=",
                    "rightHandSide": {
                      "arguments": [
                        {
                          "id": 6161,
                          "name": "processId",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6149,
                          "src": "4582:9:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          }
                        },
                        {
                          "id": 6162,
                          "name": "collateralAmount",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6151,
                          "src": "4593:16:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        }
                      ],
                      "expression": {
                        "argumentTypes": [
                          {
                            "typeIdentifier": "t_bytes32",
                            "typeString": "bytes32"
                          },
                          {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        ],
                        "id": 6160,
                        "name": "_lockCollateral",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6522,
                        "src": "4566:15:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$_t_bool_$",
                          "typeString": "function (bytes32,uint256) returns (bool)"
                        }
                      },
                      "id": 6163,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "kind": "functionCall",
                      "lValueRequested": false,
                      "names": [],
                      "nodeType": "FunctionCall",
                      "src": "4566:44:15",
                      "tryCall": false,
                      "typeDescriptions": {
                        "typeIdentifier": "t_bool",
                        "typeString": "bool"
                      }
                    },
                    "src": "4556:54:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "id": 6165,
                  "nodeType": "ExpressionStatement",
                  "src": "4556:54:15"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 6167,
                        "name": "processId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6149,
                        "src": "4654:9:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 6168,
                        "name": "collateralAmount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6151,
                        "src": "4665:16:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 6169,
                        "name": "success",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6157,
                        "src": "4683:7:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      ],
                      "id": 6166,
                      "name": "LogRiskpoolCollateralLocked",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7460,
                      "src": "4626:27:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$_t_bool_$returns$__$",
                        "typeString": "function (bytes32,uint256,bool)"
                      }
                    },
                    "id": 6170,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4626:65:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6171,
                  "nodeType": "EmitStatement",
                  "src": "4621:70:15"
                }
              ]
            },
            "functionSelector": "890fbf78",
            "id": 6173,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 6155,
                "modifierName": {
                  "id": 6154,
                  "name": "onlyPool",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 5870,
                  "src": "4499:8:15"
                },
                "nodeType": "ModifierInvocation",
                "src": "4499:8:15"
              }
            ],
            "name": "collateralizePolicy",
            "nameLocation": "4397:19:15",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6153,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4481:8:15"
            },
            "parameters": {
              "id": 6152,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6149,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "4425:9:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6173,
                  "src": "4417:17:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6148,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4417:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6151,
                  "mutability": "mutable",
                  "name": "collateralAmount",
                  "nameLocation": "4444:16:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6173,
                  "src": "4436:24:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6150,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4436:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4416:45:15"
            },
            "returnParameters": {
              "id": 6158,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6157,
                  "mutability": "mutable",
                  "name": "success",
                  "nameLocation": "4530:7:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6173,
                  "src": "4525:12:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6156,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "4525:4:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4524:14:15"
            },
            "scope": 6544,
            "src": "4388:311:15",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              7548
            ],
            "body": {
              "id": 6193,
              "nodeType": "Block",
              "src": "4821:113:15",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6184,
                        "name": "processId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6175,
                        "src": "4847:9:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 6185,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6177,
                        "src": "4858:6:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 6183,
                      "name": "_processPayout",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6536,
                      "src": "4832:14:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 6186,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4832:33:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6187,
                  "nodeType": "ExpressionStatement",
                  "src": "4832:33:15"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 6189,
                        "name": "processId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6175,
                        "src": "4908:9:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 6190,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6177,
                        "src": "4919:6:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 6188,
                      "name": "LogRiskpoolPayoutProcessed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7472,
                      "src": "4881:26:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 6191,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "4881:45:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6192,
                  "nodeType": "EmitStatement",
                  "src": "4876:50:15"
                }
              ]
            },
            "functionSelector": "82558906",
            "id": 6194,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 6181,
                "modifierName": {
                  "id": 6180,
                  "name": "onlyPool",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 5870,
                  "src": "4807:8:15"
                },
                "nodeType": "ModifierInvocation",
                "src": "4807:8:15"
              }
            ],
            "name": "processPolicyPayout",
            "nameLocation": "4716:19:15",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6179,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "4789:8:15"
            },
            "parameters": {
              "id": 6178,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6175,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "4744:9:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6194,
                  "src": "4736:17:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6174,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4736:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6177,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "4763:6:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6194,
                  "src": "4755:14:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6176,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4755:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4735:35:15"
            },
            "returnParameters": {
              "id": 6182,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "4821:0:15"
            },
            "scope": 6544,
            "src": "4707:227:15",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              7541
            ],
            "body": {
              "id": 6214,
              "nodeType": "Block",
              "src": "5057:115:15",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6205,
                        "name": "processId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6196,
                        "src": "5084:9:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 6206,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6198,
                        "src": "5095:6:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 6204,
                      "name": "_processPremium",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6529,
                      "src": "5068:15:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 6207,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5068:34:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6208,
                  "nodeType": "ExpressionStatement",
                  "src": "5068:34:15"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 6210,
                        "name": "processId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6196,
                        "src": "5146:9:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 6211,
                        "name": "amount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6198,
                        "src": "5157:6:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 6209,
                      "name": "LogRiskpoolPremiumProcessed",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7466,
                      "src": "5118:27:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 6212,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5118:46:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6213,
                  "nodeType": "EmitStatement",
                  "src": "5113:51:15"
                }
              ]
            },
            "functionSelector": "3629c3c4",
            "id": 6215,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 6202,
                "modifierName": {
                  "id": 6201,
                  "name": "onlyPool",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 5870,
                  "src": "5043:8:15"
                },
                "nodeType": "ModifierInvocation",
                "src": "5043:8:15"
              }
            ],
            "name": "processPolicyPremium",
            "nameLocation": "4951:20:15",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6200,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5025:8:15"
            },
            "parameters": {
              "id": 6199,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6196,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "4980:9:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6215,
                  "src": "4972:17:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6195,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "4972:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6198,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "4999:6:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6215,
                  "src": "4991:14:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6197,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "4991:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "4971:35:15"
            },
            "returnParameters": {
              "id": 6203,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5057:0:15"
            },
            "scope": 6544,
            "src": "4942:230:15",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              7553
            ],
            "body": {
              "id": 6234,
              "nodeType": "Block",
              "src": "5273:149:15",
              "statements": [
                {
                  "assignments": [
                    6224
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6224,
                      "mutability": "mutable",
                      "name": "collateralAmount",
                      "nameLocation": "5292:16:15",
                      "nodeType": "VariableDeclaration",
                      "scope": 6234,
                      "src": "5284:24:15",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6223,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5284:7:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 6228,
                  "initialValue": {
                    "arguments": [
                      {
                        "id": 6226,
                        "name": "processId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6217,
                        "src": "5330:9:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      ],
                      "id": 6225,
                      "name": "_releaseCollateral",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6543,
                      "src": "5311:18:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_nonpayable$_t_bytes32_$returns$_t_uint256_$",
                        "typeString": "function (bytes32) returns (uint256)"
                      }
                    },
                    "id": 6227,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5311:29:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5284:56:15"
                },
                {
                  "eventCall": {
                    "arguments": [
                      {
                        "id": 6230,
                        "name": "processId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6217,
                        "src": "5386:9:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        }
                      },
                      {
                        "id": 6231,
                        "name": "collateralAmount",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6224,
                        "src": "5397:16:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bytes32",
                          "typeString": "bytes32"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "id": 6229,
                      "name": "LogRiskpoolCollateralReleased",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 7478,
                      "src": "5356:29:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_event_nonpayable$_t_bytes32_$_t_uint256_$returns$__$",
                        "typeString": "function (bytes32,uint256)"
                      }
                    },
                    "id": 6232,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5356:58:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6233,
                  "nodeType": "EmitStatement",
                  "src": "5351:63:15"
                }
              ]
            },
            "functionSelector": "c3004c86",
            "id": 6235,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 6221,
                "modifierName": {
                  "id": 6220,
                  "name": "onlyPool",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 5870,
                  "src": "5259:8:15"
                },
                "nodeType": "ModifierInvocation",
                "src": "5259:8:15"
              }
            ],
            "name": "releasePolicy",
            "nameLocation": "5189:13:15",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6219,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5241:8:15"
            },
            "parameters": {
              "id": 6218,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6217,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "5211:9:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6235,
                  "src": "5203:17:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6216,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "5203:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5202:19:15"
            },
            "returnParameters": {
              "id": 6222,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5273:0:15"
            },
            "scope": 6544,
            "src": "5180:242:15",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              7644
            ],
            "body": {
              "id": 6255,
              "nodeType": "Block",
              "src": "5560:148:15",
              "statements": [
                {
                  "assignments": [
                    6244
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6244,
                      "mutability": "mutable",
                      "name": "riskpoolId",
                      "nameLocation": "5579:10:15",
                      "nodeType": "VariableDeclaration",
                      "scope": 6255,
                      "src": "5571:18:15",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6243,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5571:7:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 6247,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 6245,
                      "name": "getId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4867,
                      "src": "5592:5:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                        "typeString": "function () view returns (uint256)"
                      }
                    },
                    "id": 6246,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5592:7:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5571:28:15"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6251,
                        "name": "riskpoolId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6244,
                        "src": "5659:10:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 6252,
                        "name": "maximumNumberOfActiveBundles",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6237,
                        "src": "5671:28:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 6248,
                        "name": "_riskpoolService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5840,
                        "src": "5610:16:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IRiskpoolService_$7417",
                          "typeString": "contract IRiskpoolService"
                        }
                      },
                      "id": 6250,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "setMaximumNumberOfActiveBundles",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 7416,
                      "src": "5610:48:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_nonpayable$_t_uint256_$_t_uint256_$returns$__$",
                        "typeString": "function (uint256,uint256) external"
                      }
                    },
                    "id": 6253,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5610:90:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6254,
                  "nodeType": "ExpressionStatement",
                  "src": "5610:90:15"
                }
              ]
            },
            "functionSelector": "652028e5",
            "id": 6256,
            "implemented": true,
            "kind": "function",
            "modifiers": [
              {
                "id": 6241,
                "modifierName": {
                  "id": 6240,
                  "name": "onlyOwner",
                  "nodeType": "IdentifierPath",
                  "referencedDeclaration": 6714,
                  "src": "5545:9:15"
                },
                "nodeType": "ModifierInvocation",
                "src": "5545:9:15"
              }
            ],
            "name": "setMaximumNumberOfActiveBundles",
            "nameLocation": "5439:31:15",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6239,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5527:8:15"
            },
            "parameters": {
              "id": 6238,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6237,
                  "mutability": "mutable",
                  "name": "maximumNumberOfActiveBundles",
                  "nameLocation": "5479:28:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6256,
                  "src": "5471:36:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6236,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5471:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5470:38:15"
            },
            "returnParameters": {
              "id": 6242,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5560:0:15"
            },
            "scope": 6544,
            "src": "5430:278:15",
            "stateMutability": "nonpayable",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              7649
            ],
            "body": {
              "id": 6272,
              "nodeType": "Block",
              "src": "5849:125:15",
              "statements": [
                {
                  "assignments": [
                    6263
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6263,
                      "mutability": "mutable",
                      "name": "riskpoolId",
                      "nameLocation": "5868:10:15",
                      "nodeType": "VariableDeclaration",
                      "scope": 6272,
                      "src": "5860:18:15",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6262,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "5860:7:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 6266,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 6264,
                      "name": "getId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4867,
                      "src": "5881:5:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                        "typeString": "function () view returns (uint256)"
                      }
                    },
                    "id": 6265,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5881:7:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "5860:28:15"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6269,
                        "name": "riskpoolId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6263,
                        "src": "5955:10:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 6267,
                        "name": "_instanceService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5837,
                        "src": "5906:16:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IInstanceService_$5668",
                          "typeString": "contract IInstanceService"
                        }
                      },
                      "id": 6268,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getMaximumNumberOfActiveBundles",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 5548,
                      "src": "5906:48:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256) view external returns (uint256)"
                      }
                    },
                    "id": 6270,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "5906:60:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 6261,
                  "id": 6271,
                  "nodeType": "Return",
                  "src": "5899:67:15"
                }
              ]
            },
            "functionSelector": "7f3b6980",
            "id": 6273,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getMaximumNumberOfActiveBundles",
            "nameLocation": "5725:31:15",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6258,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "5780:8:15"
            },
            "parameters": {
              "id": 6257,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "5756:2:15"
            },
            "returnParameters": {
              "id": 6261,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6260,
                  "mutability": "mutable",
                  "name": "maximumNumberOfActiveBundles",
                  "nameLocation": "5814:28:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6273,
                  "src": "5806:36:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6259,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "5806:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "5805:38:15"
            },
            "scope": 6544,
            "src": "5716:258:15",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              7609
            ],
            "body": {
              "id": 6281,
              "nodeType": "Block",
              "src": "6041:33:15",
              "statements": [
                {
                  "expression": {
                    "id": 6279,
                    "name": "_wallet",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5848,
                    "src": "6059:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 6278,
                  "id": 6280,
                  "nodeType": "Return",
                  "src": "6052:14:15"
                }
              ]
            },
            "functionSelector": "13299604",
            "id": 6282,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getWallet",
            "nameLocation": "5991:9:15",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6275,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6015:8:15"
            },
            "parameters": {
              "id": 6274,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6000:2:15"
            },
            "returnParameters": {
              "id": 6278,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6277,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6282,
                  "src": "6032:7:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6276,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6032:7:15",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6031:9:15"
            },
            "scope": 6544,
            "src": "5982:92:15",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              7614
            ],
            "body": {
              "id": 6290,
              "nodeType": "Block",
              "src": "6145:37:15",
              "statements": [
                {
                  "expression": {
                    "id": 6288,
                    "name": "_erc20Token",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5850,
                    "src": "6163:11:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "functionReturnParameters": 6287,
                  "id": 6289,
                  "nodeType": "Return",
                  "src": "6156:18:15"
                }
              ]
            },
            "functionSelector": "feb1824b",
            "id": 6291,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getErc20Token",
            "nameLocation": "6091:13:15",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6284,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6119:8:15"
            },
            "parameters": {
              "id": 6283,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6104:2:15"
            },
            "returnParameters": {
              "id": 6287,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6286,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6291,
                  "src": "6136:7:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_address",
                    "typeString": "address"
                  },
                  "typeName": {
                    "id": 6285,
                    "name": "address",
                    "nodeType": "ElementaryTypeName",
                    "src": "6136:7:15",
                    "stateMutability": "nonpayable",
                    "typeDescriptions": {
                      "typeIdentifier": "t_address",
                      "typeString": "address"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6135:9:15"
            },
            "scope": 6544,
            "src": "6082:100:15",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              7619
            ],
            "body": {
              "id": 6299,
              "nodeType": "Block",
              "src": "6262:45:15",
              "statements": [
                {
                  "expression": {
                    "id": 6297,
                    "name": "_sumOfSumInsuredCap",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5854,
                    "src": "6280:19:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 6296,
                  "id": 6298,
                  "nodeType": "Return",
                  "src": "6273:26:15"
                }
              ]
            },
            "functionSelector": "a18aa128",
            "id": 6300,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getSumOfSumInsuredCap",
            "nameLocation": "6199:21:15",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6293,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6235:8:15"
            },
            "parameters": {
              "id": 6292,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6220:2:15"
            },
            "returnParameters": {
              "id": 6296,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6295,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6300,
                  "src": "6253:7:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6294,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6253:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6252:9:15"
            },
            "scope": 6544,
            "src": "6190:117:15",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              7563
            ],
            "body": {
              "id": 6308,
              "nodeType": "Block",
              "src": "6395:54:15",
              "statements": [
                {
                  "expression": {
                    "id": 6306,
                    "name": "FULL_COLLATERALIZATION_LEVEL",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5831,
                    "src": "6413:28:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 6305,
                  "id": 6307,
                  "nodeType": "Return",
                  "src": "6406:35:15"
                }
              ]
            },
            "functionSelector": "f1d354d0",
            "id": 6309,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getFullCollateralizationLevel",
            "nameLocation": "6324:29:15",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6302,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6368:8:15"
            },
            "parameters": {
              "id": 6301,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6353:2:15"
            },
            "returnParameters": {
              "id": 6305,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6304,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6309,
                  "src": "6386:7:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6303,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6386:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6385:9:15"
            },
            "scope": 6544,
            "src": "6315:134:15",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              7558
            ],
            "body": {
              "id": 6317,
              "nodeType": "Block",
              "src": "6533:44:15",
              "statements": [
                {
                  "expression": {
                    "id": 6315,
                    "name": "_collateralization",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5852,
                    "src": "6551:18:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 6314,
                  "id": 6316,
                  "nodeType": "Return",
                  "src": "6544:25:15"
                }
              ]
            },
            "functionSelector": "54afef63",
            "id": 6318,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getCollateralizationLevel",
            "nameLocation": "6466:25:15",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6311,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6506:8:15"
            },
            "parameters": {
              "id": 6310,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6491:2:15"
            },
            "returnParameters": {
              "id": 6314,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6313,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6318,
                  "src": "6524:7:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6312,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6524:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6523:9:15"
            },
            "scope": 6544,
            "src": "6457:120:15",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              7584
            ],
            "body": {
              "id": 6327,
              "nodeType": "Block",
              "src": "6642:43:15",
              "statements": [
                {
                  "expression": {
                    "expression": {
                      "id": 6324,
                      "name": "_bundleIds",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5846,
                      "src": "6660:10:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                        "typeString": "uint256[] storage ref"
                      }
                    },
                    "id": 6325,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "lValueRequested": false,
                    "memberName": "length",
                    "nodeType": "MemberAccess",
                    "src": "6660:17:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 6323,
                  "id": 6326,
                  "nodeType": "Return",
                  "src": "6653:24:15"
                }
              ]
            },
            "functionSelector": "18442e63",
            "id": 6328,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "bundles",
            "nameLocation": "6594:7:15",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6320,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6611:8:15"
            },
            "parameters": {
              "id": 6319,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "6601:2:15"
            },
            "returnParameters": {
              "id": 6323,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6322,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6328,
                  "src": "6633:7:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6321,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6633:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6632:9:15"
            },
            "scope": 6544,
            "src": "6585:100:15",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              7592
            ],
            "body": {
              "id": 6356,
              "nodeType": "Block",
              "src": "6777:194:15",
              "statements": [
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6341,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 6338,
                          "name": "idx",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6330,
                          "src": "6796:3:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "expression": {
                            "id": 6339,
                            "name": "_bundleIds",
                            "nodeType": "Identifier",
                            "overloadedDeclarations": [],
                            "referencedDeclaration": 5846,
                            "src": "6802:10:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                              "typeString": "uint256[] storage ref"
                            }
                          },
                          "id": 6340,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "lValueRequested": false,
                          "memberName": "length",
                          "nodeType": "MemberAccess",
                          "src": "6802:17:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "6796:23:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552524f523a52504c2d3030363a42554e444c455f494e4445585f544f4f5f4c41524745",
                        "id": 6342,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "6821:38:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_5bd5dab0bd10af75b53c0890fab91920ce3d2ed9e7810fca06e8849074b3b4ac",
                          "typeString": "literal_string \"ERROR:RPL-006:BUNDLE_INDEX_TOO_LARGE\""
                        },
                        "value": "ERROR:RPL-006:BUNDLE_INDEX_TOO_LARGE"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_5bd5dab0bd10af75b53c0890fab91920ce3d2ed9e7810fca06e8849074b3b4ac",
                          "typeString": "literal_string \"ERROR:RPL-006:BUNDLE_INDEX_TOO_LARGE\""
                        }
                      ],
                      "id": 6337,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "6788:7:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6343,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6788:72:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6344,
                  "nodeType": "ExpressionStatement",
                  "src": "6788:72:15"
                },
                {
                  "assignments": [
                    6346
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6346,
                      "mutability": "mutable",
                      "name": "bundleIdx",
                      "nameLocation": "6881:9:15",
                      "nodeType": "VariableDeclaration",
                      "scope": 6356,
                      "src": "6873:17:15",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6345,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "6873:7:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 6350,
                  "initialValue": {
                    "baseExpression": {
                      "id": 6347,
                      "name": "_bundleIds",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 5846,
                      "src": "6893:10:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_array$_t_uint256_$dyn_storage",
                        "typeString": "uint256[] storage ref"
                      }
                    },
                    "id": 6349,
                    "indexExpression": {
                      "id": 6348,
                      "name": "idx",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 6330,
                      "src": "6904:3:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      }
                    },
                    "isConstant": false,
                    "isLValue": true,
                    "isPure": false,
                    "lValueRequested": false,
                    "nodeType": "IndexAccess",
                    "src": "6893:15:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "6873:35:15"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6353,
                        "name": "bundleIdx",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6346,
                        "src": "6953:9:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 6351,
                        "name": "_instanceService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5837,
                        "src": "6926:16:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IInstanceService_$5668",
                          "typeString": "contract IInstanceService"
                        }
                      },
                      "id": 6352,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getBundle",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 5567,
                      "src": "6926:26:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_struct$_Bundle_$3528_memory_ptr_$",
                        "typeString": "function (uint256) view external returns (struct IBundle.Bundle memory)"
                      }
                    },
                    "id": 6354,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "6926:37:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bundle_$3528_memory_ptr",
                      "typeString": "struct IBundle.Bundle memory"
                    }
                  },
                  "functionReturnParameters": 6336,
                  "id": 6355,
                  "nodeType": "Return",
                  "src": "6919:44:15"
                }
              ]
            },
            "functionSelector": "2d0821b7",
            "id": 6357,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getBundle",
            "nameLocation": "6702:9:15",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6332,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "6732:8:15"
            },
            "parameters": {
              "id": 6331,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6330,
                  "mutability": "mutable",
                  "name": "idx",
                  "nameLocation": "6720:3:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6357,
                  "src": "6712:11:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6329,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "6712:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6711:13:15"
            },
            "returnParameters": {
              "id": 6336,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6335,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6357,
                  "src": "6754:21:15",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bundle_$3528_memory_ptr",
                    "typeString": "struct IBundle.Bundle"
                  },
                  "typeName": {
                    "id": 6334,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6333,
                      "name": "IBundle.Bundle",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3528,
                      "src": "6754:14:15"
                    },
                    "referencedDeclaration": 3528,
                    "src": "6754:14:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bundle_$3528_storage_ptr",
                      "typeString": "struct IBundle.Bundle"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "6753:23:15"
            },
            "scope": 6544,
            "src": "6693:278:15",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              7597
            ],
            "body": {
              "id": 6373,
              "nodeType": "Block",
              "src": "7042:107:15",
              "statements": [
                {
                  "assignments": [
                    6364
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6364,
                      "mutability": "mutable",
                      "name": "riskpoolId",
                      "nameLocation": "7061:10:15",
                      "nodeType": "VariableDeclaration",
                      "scope": 6373,
                      "src": "7053:18:15",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6363,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "7053:7:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 6367,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 6365,
                      "name": "getId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4867,
                      "src": "7074:5:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                        "typeString": "function () view returns (uint256)"
                      }
                    },
                    "id": 6366,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7074:7:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7053:28:15"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6370,
                        "name": "riskpoolId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6364,
                        "src": "7130:10:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 6368,
                        "name": "_instanceService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5837,
                        "src": "7099:16:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IInstanceService_$5668",
                          "typeString": "contract IInstanceService"
                        }
                      },
                      "id": 6369,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "activeBundles",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 5532,
                      "src": "7099:30:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256) view external returns (uint256)"
                      }
                    },
                    "id": 6371,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7099:42:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 6362,
                  "id": 6372,
                  "nodeType": "Return",
                  "src": "7092:49:15"
                }
              ]
            },
            "functionSelector": "4101b90c",
            "id": 6374,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "activeBundles",
            "nameLocation": "6988:13:15",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6359,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "7011:8:15"
            },
            "parameters": {
              "id": 6358,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7001:2:15"
            },
            "returnParameters": {
              "id": 6362,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6361,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6374,
                  "src": "7033:7:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6360,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7033:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7032:9:15"
            },
            "scope": 6544,
            "src": "6979:170:15",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              7604
            ],
            "body": {
              "id": 6403,
              "nodeType": "Block",
              "src": "7244:233:15",
              "statements": [
                {
                  "assignments": [
                    6383
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6383,
                      "mutability": "mutable",
                      "name": "riskpoolId",
                      "nameLocation": "7263:10:15",
                      "nodeType": "VariableDeclaration",
                      "scope": 6403,
                      "src": "7255:18:15",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6382,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "7255:7:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 6386,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 6384,
                      "name": "getId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4867,
                      "src": "7276:5:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                        "typeString": "function () view returns (uint256)"
                      }
                    },
                    "id": 6385,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7276:7:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7255:28:15"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6393,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "id": 6388,
                          "name": "idx",
                          "nodeType": "Identifier",
                          "overloadedDeclarations": [],
                          "referencedDeclaration": 6376,
                          "src": "7302:3:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "<",
                        "rightExpression": {
                          "arguments": [
                            {
                              "id": 6391,
                              "name": "riskpoolId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6383,
                              "src": "7339:10:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 6389,
                              "name": "_instanceService",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5837,
                              "src": "7308:16:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IInstanceService_$5668",
                                "typeString": "contract IInstanceService"
                              }
                            },
                            "id": 6390,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "activeBundles",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 5532,
                            "src": "7308:30:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$",
                              "typeString": "function (uint256) view external returns (uint256)"
                            }
                          },
                          "id": 6392,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "7308:42:15",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "src": "7302:48:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552524f523a52504c2d3030373a4143544956455f42554e444c455f494e4445585f544f4f5f4c41524745",
                        "id": 6394,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "7352:45:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_82780776f183fcd808ad9ca738f415f32c17d7a043dc65d4817fbef9c5f091f9",
                          "typeString": "literal_string \"ERROR:RPL-007:ACTIVE_BUNDLE_INDEX_TOO_LARGE\""
                        },
                        "value": "ERROR:RPL-007:ACTIVE_BUNDLE_INDEX_TOO_LARGE"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_82780776f183fcd808ad9ca738f415f32c17d7a043dc65d4817fbef9c5f091f9",
                          "typeString": "literal_string \"ERROR:RPL-007:ACTIVE_BUNDLE_INDEX_TOO_LARGE\""
                        }
                      ],
                      "id": 6387,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "7294:7:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6395,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7294:104:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6396,
                  "nodeType": "ExpressionStatement",
                  "src": "7294:104:15"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6399,
                        "name": "riskpoolId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6383,
                        "src": "7453:10:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      {
                        "id": 6400,
                        "name": "idx",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6376,
                        "src": "7465:3:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 6397,
                        "name": "_instanceService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5837,
                        "src": "7418:16:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IInstanceService_$5668",
                          "typeString": "contract IInstanceService"
                        }
                      },
                      "id": 6398,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getActiveBundleId",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 5541,
                      "src": "7418:34:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256,uint256) view external returns (uint256)"
                      }
                    },
                    "id": 6401,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7418:51:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 6381,
                  "id": 6402,
                  "nodeType": "Return",
                  "src": "7411:58:15"
                }
              ]
            },
            "functionSelector": "0676cb0e",
            "id": 6404,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getActiveBundleId",
            "nameLocation": "7166:17:15",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6378,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "7204:8:15"
            },
            "parameters": {
              "id": 6377,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6376,
                  "mutability": "mutable",
                  "name": "idx",
                  "nameLocation": "7192:3:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6404,
                  "src": "7184:11:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6375,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7184:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7183:13:15"
            },
            "returnParameters": {
              "id": 6381,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6380,
                  "mutability": "mutable",
                  "name": "bundleId",
                  "nameLocation": "7234:8:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6404,
                  "src": "7226:16:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6379,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7226:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7225:18:15"
            },
            "scope": 6544,
            "src": "7157:320:15",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              7579
            ],
            "body": {
              "id": 6412,
              "nodeType": "Block",
              "src": "7565:55:15",
              "statements": [
                {
                  "expression": {
                    "id": 6410,
                    "name": "DEFAULT_FILTER_DATA_STRUCTURE",
                    "nodeType": "Identifier",
                    "overloadedDeclarations": [],
                    "referencedDeclaration": 5834,
                    "src": "7583:29:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_memory_ptr",
                      "typeString": "string memory"
                    }
                  },
                  "functionReturnParameters": 6409,
                  "id": 6411,
                  "nodeType": "Return",
                  "src": "7576:36:15"
                }
              ]
            },
            "functionSelector": "3dcdde17",
            "id": 6413,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getFilterDataStructure",
            "nameLocation": "7494:22:15",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6406,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "7528:8:15"
            },
            "parameters": {
              "id": 6405,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7516:2:15"
            },
            "returnParameters": {
              "id": 6409,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6408,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6413,
                  "src": "7550:13:15",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_string_memory_ptr",
                    "typeString": "string"
                  },
                  "typeName": {
                    "id": 6407,
                    "name": "string",
                    "nodeType": "ElementaryTypeName",
                    "src": "7550:6:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_string_storage_ptr",
                      "typeString": "string"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7549:15:15"
            },
            "scope": 6544,
            "src": "7485:135:15",
            "stateMutability": "pure",
            "virtual": false,
            "visibility": "external"
          },
          {
            "baseFunctions": [
              7624
            ],
            "body": {
              "id": 6429,
              "nodeType": "Block",
              "src": "7688:104:15",
              "statements": [
                {
                  "assignments": [
                    6420
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6420,
                      "mutability": "mutable",
                      "name": "riskpoolId",
                      "nameLocation": "7707:10:15",
                      "nodeType": "VariableDeclaration",
                      "scope": 6429,
                      "src": "7699:18:15",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6419,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "7699:7:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 6423,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 6421,
                      "name": "getId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4867,
                      "src": "7720:5:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                        "typeString": "function () view returns (uint256)"
                      }
                    },
                    "id": 6422,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7720:7:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7699:28:15"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6426,
                        "name": "riskpoolId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6420,
                        "src": "7773:10:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 6424,
                        "name": "_instanceService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5837,
                        "src": "7745:16:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IInstanceService_$5668",
                          "typeString": "contract IInstanceService"
                        }
                      },
                      "id": 6425,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getCapital",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 5504,
                      "src": "7745:27:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256) view external returns (uint256)"
                      }
                    },
                    "id": 6427,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7745:39:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 6418,
                  "id": 6428,
                  "nodeType": "Return",
                  "src": "7738:46:15"
                }
              ]
            },
            "functionSelector": "e0032383",
            "id": 6430,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getCapital",
            "nameLocation": "7637:10:15",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6415,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "7657:8:15"
            },
            "parameters": {
              "id": 6414,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7647:2:15"
            },
            "returnParameters": {
              "id": 6418,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6417,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6430,
                  "src": "7679:7:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6416,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7679:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7678:9:15"
            },
            "scope": 6544,
            "src": "7628:164:15",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              7629
            ],
            "body": {
              "id": 6446,
              "nodeType": "Block",
              "src": "7869:113:15",
              "statements": [
                {
                  "assignments": [
                    6437
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6437,
                      "mutability": "mutable",
                      "name": "riskpoolId",
                      "nameLocation": "7888:10:15",
                      "nodeType": "VariableDeclaration",
                      "scope": 6446,
                      "src": "7880:18:15",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6436,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "7880:7:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 6440,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 6438,
                      "name": "getId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4867,
                      "src": "7901:5:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                        "typeString": "function () view returns (uint256)"
                      }
                    },
                    "id": 6439,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7901:7:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "7880:28:15"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6443,
                        "name": "riskpoolId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6437,
                        "src": "7963:10:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 6441,
                        "name": "_instanceService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5837,
                        "src": "7926:16:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IInstanceService_$5668",
                          "typeString": "contract IInstanceService"
                        }
                      },
                      "id": 6442,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getTotalValueLocked",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 5511,
                      "src": "7926:36:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256) view external returns (uint256)"
                      }
                    },
                    "id": 6444,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "7926:48:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 6435,
                  "id": 6445,
                  "nodeType": "Return",
                  "src": "7919:55:15"
                }
              ]
            },
            "functionSelector": "b26025aa",
            "id": 6447,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getTotalValueLocked",
            "nameLocation": "7809:19:15",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6432,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "7838:8:15"
            },
            "parameters": {
              "id": 6431,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "7828:2:15"
            },
            "returnParameters": {
              "id": 6435,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6434,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6447,
                  "src": "7860:7:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6433,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "7860:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "7859:9:15"
            },
            "scope": 6544,
            "src": "7800:182:15",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              7634
            ],
            "body": {
              "id": 6463,
              "nodeType": "Block",
              "src": "8051:105:15",
              "statements": [
                {
                  "assignments": [
                    6454
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6454,
                      "mutability": "mutable",
                      "name": "riskpoolId",
                      "nameLocation": "8070:10:15",
                      "nodeType": "VariableDeclaration",
                      "scope": 6463,
                      "src": "8062:18:15",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6453,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "8062:7:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 6457,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 6455,
                      "name": "getId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4867,
                      "src": "8083:5:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                        "typeString": "function () view returns (uint256)"
                      }
                    },
                    "id": 6456,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8083:7:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8062:28:15"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6460,
                        "name": "riskpoolId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6454,
                        "src": "8137:10:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 6458,
                        "name": "_instanceService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5837,
                        "src": "8108:16:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IInstanceService_$5668",
                          "typeString": "contract IInstanceService"
                        }
                      },
                      "id": 6459,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getCapacity",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 5518,
                      "src": "8108:28:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256) view external returns (uint256)"
                      }
                    },
                    "id": 6461,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8108:40:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 6452,
                  "id": 6462,
                  "nodeType": "Return",
                  "src": "8101:47:15"
                }
              ]
            },
            "functionSelector": "c40000d4",
            "id": 6464,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getCapacity",
            "nameLocation": "7999:11:15",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6449,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "8020:8:15"
            },
            "parameters": {
              "id": 6448,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8010:2:15"
            },
            "returnParameters": {
              "id": 6452,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6451,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6464,
                  "src": "8042:7:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6450,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8042:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8041:9:15"
            },
            "scope": 6544,
            "src": "7990:166:15",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              7639
            ],
            "body": {
              "id": 6480,
              "nodeType": "Block",
              "src": "8224:104:15",
              "statements": [
                {
                  "assignments": [
                    6471
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6471,
                      "mutability": "mutable",
                      "name": "riskpoolId",
                      "nameLocation": "8243:10:15",
                      "nodeType": "VariableDeclaration",
                      "scope": 6480,
                      "src": "8235:18:15",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6470,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "8235:7:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 6474,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 6472,
                      "name": "getId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4867,
                      "src": "8256:5:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                        "typeString": "function () view returns (uint256)"
                      }
                    },
                    "id": 6473,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8256:7:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8235:28:15"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "id": 6477,
                        "name": "riskpoolId",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 6471,
                        "src": "8309:10:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      ],
                      "expression": {
                        "id": 6475,
                        "name": "_instanceService",
                        "nodeType": "Identifier",
                        "overloadedDeclarations": [],
                        "referencedDeclaration": 5837,
                        "src": "8281:16:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_contract$_IInstanceService_$5668",
                          "typeString": "contract IInstanceService"
                        }
                      },
                      "id": 6476,
                      "isConstant": false,
                      "isLValue": false,
                      "isPure": false,
                      "lValueRequested": false,
                      "memberName": "getBalance",
                      "nodeType": "MemberAccess",
                      "referencedDeclaration": 5525,
                      "src": "8281:27:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$",
                        "typeString": "function (uint256) view external returns (uint256)"
                      }
                    },
                    "id": 6478,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8281:39:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "functionReturnParameters": 6469,
                  "id": 6479,
                  "nodeType": "Return",
                  "src": "8274:46:15"
                }
              ]
            },
            "functionSelector": "12065fe0",
            "id": 6481,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "getBalance",
            "nameLocation": "8173:10:15",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6466,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "8193:8:15"
            },
            "parameters": {
              "id": 6465,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8183:2:15"
            },
            "returnParameters": {
              "id": 6469,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6468,
                  "mutability": "mutable",
                  "name": "",
                  "nameLocation": "-1:-1:-1",
                  "nodeType": "VariableDeclaration",
                  "scope": 6481,
                  "src": "8215:7:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6467,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8215:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8214:9:15"
            },
            "scope": 6544,
            "src": "8164:164:15",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              7574
            ],
            "functionSelector": "86c71288",
            "id": 6493,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "bundleMatchesApplication",
            "nameLocation": "8345:24:15",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6489,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "8473:8:15"
            },
            "parameters": {
              "id": 6488,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6484,
                  "mutability": "mutable",
                  "name": "bundle",
                  "nameLocation": "8402:6:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6493,
                  "src": "8380:28:15",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Bundle_$3528_memory_ptr",
                    "typeString": "struct IBundle.Bundle"
                  },
                  "typeName": {
                    "id": 6483,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6482,
                      "name": "IBundle.Bundle",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3528,
                      "src": "8380:14:15"
                    },
                    "referencedDeclaration": 3528,
                    "src": "8380:14:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Bundle_$3528_storage_ptr",
                      "typeString": "struct IBundle.Bundle"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6487,
                  "mutability": "mutable",
                  "name": "application",
                  "nameLocation": "8447:11:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6493,
                  "src": "8420:38:15",
                  "stateVariable": false,
                  "storageLocation": "memory",
                  "typeDescriptions": {
                    "typeIdentifier": "t_struct$_Application_$3787_memory_ptr",
                    "typeString": "struct IPolicy.Application"
                  },
                  "typeName": {
                    "id": 6486,
                    "nodeType": "UserDefinedTypeName",
                    "pathNode": {
                      "id": 6485,
                      "name": "IPolicy.Application",
                      "nodeType": "IdentifierPath",
                      "referencedDeclaration": 3787,
                      "src": "8420:19:15"
                    },
                    "referencedDeclaration": 3787,
                    "src": "8420:19:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_struct$_Application_$3787_storage_ptr",
                      "typeString": "struct IPolicy.Application"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8369:96:15"
            },
            "returnParameters": {
              "id": 6492,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6491,
                  "mutability": "mutable",
                  "name": "isMatching",
                  "nameLocation": "8508:10:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6493,
                  "src": "8503:15:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6490,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "8503:4:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8502:17:15"
            },
            "scope": 6544,
            "src": "8336:184:15",
            "stateMutability": "view",
            "virtual": true,
            "visibility": "public"
          },
          {
            "baseFunctions": [
              5061
            ],
            "body": {
              "id": 6512,
              "nodeType": "Block",
              "src": "8576:204:15",
              "statements": [
                {
                  "assignments": [
                    6498
                  ],
                  "declarations": [
                    {
                      "constant": false,
                      "id": 6498,
                      "mutability": "mutable",
                      "name": "riskpoolId",
                      "nameLocation": "8596:10:15",
                      "nodeType": "VariableDeclaration",
                      "scope": 6512,
                      "src": "8588:18:15",
                      "stateVariable": false,
                      "storageLocation": "default",
                      "typeDescriptions": {
                        "typeIdentifier": "t_uint256",
                        "typeString": "uint256"
                      },
                      "typeName": {
                        "id": 6497,
                        "name": "uint256",
                        "nodeType": "ElementaryTypeName",
                        "src": "8588:7:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        }
                      },
                      "visibility": "internal"
                    }
                  ],
                  "id": 6501,
                  "initialValue": {
                    "arguments": [],
                    "expression": {
                      "argumentTypes": [],
                      "id": 6499,
                      "name": "getId",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [],
                      "referencedDeclaration": 4867,
                      "src": "8609:5:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_internal_view$__$returns$_t_uint256_$",
                        "typeString": "function () view returns (uint256)"
                      }
                    },
                    "id": 6500,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8609:7:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "nodeType": "VariableDeclarationStatement",
                  "src": "8588:28:15"
                },
                {
                  "expression": {
                    "arguments": [
                      {
                        "commonType": {
                          "typeIdentifier": "t_uint256",
                          "typeString": "uint256"
                        },
                        "id": 6508,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": false,
                        "lValueRequested": false,
                        "leftExpression": {
                          "arguments": [
                            {
                              "id": 6505,
                              "name": "riskpoolId",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 6498,
                              "src": "8681:10:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            }
                          ],
                          "expression": {
                            "argumentTypes": [
                              {
                                "typeIdentifier": "t_uint256",
                                "typeString": "uint256"
                              }
                            ],
                            "expression": {
                              "id": 6503,
                              "name": "_instanceService",
                              "nodeType": "Identifier",
                              "overloadedDeclarations": [],
                              "referencedDeclaration": 5837,
                              "src": "8649:16:15",
                              "typeDescriptions": {
                                "typeIdentifier": "t_contract$_IInstanceService_$5668",
                                "typeString": "contract IInstanceService"
                              }
                            },
                            "id": 6504,
                            "isConstant": false,
                            "isLValue": false,
                            "isPure": false,
                            "lValueRequested": false,
                            "memberName": "unburntBundles",
                            "nodeType": "MemberAccess",
                            "referencedDeclaration": 5574,
                            "src": "8649:31:15",
                            "typeDescriptions": {
                              "typeIdentifier": "t_function_external_view$_t_uint256_$returns$_t_uint256_$",
                              "typeString": "function (uint256) view external returns (uint256)"
                            }
                          },
                          "id": 6506,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": false,
                          "kind": "functionCall",
                          "lValueRequested": false,
                          "names": [],
                          "nodeType": "FunctionCall",
                          "src": "8649:43:15",
                          "tryCall": false,
                          "typeDescriptions": {
                            "typeIdentifier": "t_uint256",
                            "typeString": "uint256"
                          }
                        },
                        "nodeType": "BinaryOperation",
                        "operator": "==",
                        "rightExpression": {
                          "hexValue": "30",
                          "id": 6507,
                          "isConstant": false,
                          "isLValue": false,
                          "isPure": true,
                          "kind": "number",
                          "lValueRequested": false,
                          "nodeType": "Literal",
                          "src": "8696:1:15",
                          "typeDescriptions": {
                            "typeIdentifier": "t_rational_0_by_1",
                            "typeString": "int_const 0"
                          },
                          "value": "0"
                        },
                        "src": "8649:48:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        }
                      },
                      {
                        "hexValue": "4552524f523a52504c2d3031303a5249534b504f4f4c5f4841535f554e4255524e545f42554e444c4553",
                        "id": 6509,
                        "isConstant": false,
                        "isLValue": false,
                        "isPure": true,
                        "kind": "string",
                        "lValueRequested": false,
                        "nodeType": "Literal",
                        "src": "8713:44:15",
                        "typeDescriptions": {
                          "typeIdentifier": "t_stringliteral_a2626045118232e735558df751611285d72ec20b7c63057376deea8c67275d7a",
                          "typeString": "literal_string \"ERROR:RPL-010:RISKPOOL_HAS_UNBURNT_BUNDLES\""
                        },
                        "value": "ERROR:RPL-010:RISKPOOL_HAS_UNBURNT_BUNDLES"
                      }
                    ],
                    "expression": {
                      "argumentTypes": [
                        {
                          "typeIdentifier": "t_bool",
                          "typeString": "bool"
                        },
                        {
                          "typeIdentifier": "t_stringliteral_a2626045118232e735558df751611285d72ec20b7c63057376deea8c67275d7a",
                          "typeString": "literal_string \"ERROR:RPL-010:RISKPOOL_HAS_UNBURNT_BUNDLES\""
                        }
                      ],
                      "id": 6502,
                      "name": "require",
                      "nodeType": "Identifier",
                      "overloadedDeclarations": [
                        -18,
                        -18
                      ],
                      "referencedDeclaration": -18,
                      "src": "8627:7:15",
                      "typeDescriptions": {
                        "typeIdentifier": "t_function_require_pure$_t_bool_$_t_string_memory_ptr_$returns$__$",
                        "typeString": "function (bool,string memory) pure"
                      }
                    },
                    "id": 6510,
                    "isConstant": false,
                    "isLValue": false,
                    "isPure": false,
                    "kind": "functionCall",
                    "lValueRequested": false,
                    "names": [],
                    "nodeType": "FunctionCall",
                    "src": "8627:145:15",
                    "tryCall": false,
                    "typeDescriptions": {
                      "typeIdentifier": "t_tuple$__$",
                      "typeString": "tuple()"
                    }
                  },
                  "id": 6511,
                  "nodeType": "ExpressionStatement",
                  "src": "8627:145:15"
                }
              ]
            },
            "id": 6513,
            "implemented": true,
            "kind": "function",
            "modifiers": [],
            "name": "_afterArchive",
            "nameLocation": "8537:13:15",
            "nodeType": "FunctionDefinition",
            "overrides": {
              "id": 6495,
              "nodeType": "OverrideSpecifier",
              "overrides": [],
              "src": "8567:8:15"
            },
            "parameters": {
              "id": 6494,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8550:2:15"
            },
            "returnParameters": {
              "id": 6496,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8576:0:15"
            },
            "scope": 6544,
            "src": "8528:252:15",
            "stateMutability": "view",
            "virtual": false,
            "visibility": "internal"
          },
          {
            "id": 6522,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "_lockCollateral",
            "nameLocation": "8797:15:15",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6518,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6515,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "8821:9:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6522,
                  "src": "8813:17:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6514,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8813:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6517,
                  "mutability": "mutable",
                  "name": "collateralAmount",
                  "nameLocation": "8840:16:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6522,
                  "src": "8832:24:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6516,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8832:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8812:45:15"
            },
            "returnParameters": {
              "id": 6521,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6520,
                  "mutability": "mutable",
                  "name": "success",
                  "nameLocation": "8888:7:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6522,
                  "src": "8883:12:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bool",
                    "typeString": "bool"
                  },
                  "typeName": {
                    "id": 6519,
                    "name": "bool",
                    "nodeType": "ElementaryTypeName",
                    "src": "8883:4:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bool",
                      "typeString": "bool"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8882:14:15"
            },
            "scope": 6544,
            "src": "8788:109:15",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "id": 6529,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "_processPremium",
            "nameLocation": "8912:15:15",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6527,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6524,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "8936:9:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6529,
                  "src": "8928:17:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6523,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "8928:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6526,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "8955:6:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6529,
                  "src": "8947:14:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6525,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "8947:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "8927:35:15"
            },
            "returnParameters": {
              "id": 6528,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "8979:0:15"
            },
            "scope": 6544,
            "src": "8903:77:15",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "id": 6536,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "_processPayout",
            "nameLocation": "8995:14:15",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6534,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6531,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "9018:9:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6536,
                  "src": "9010:17:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6530,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9010:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                },
                {
                  "constant": false,
                  "id": 6533,
                  "mutability": "mutable",
                  "name": "amount",
                  "nameLocation": "9037:6:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6536,
                  "src": "9029:14:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6532,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9029:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9009:35:15"
            },
            "returnParameters": {
              "id": 6535,
              "nodeType": "ParameterList",
              "parameters": [],
              "src": "9061:0:15"
            },
            "scope": 6544,
            "src": "8986:76:15",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          },
          {
            "id": 6543,
            "implemented": false,
            "kind": "function",
            "modifiers": [],
            "name": "_releaseCollateral",
            "nameLocation": "9077:18:15",
            "nodeType": "FunctionDefinition",
            "parameters": {
              "id": 6539,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6538,
                  "mutability": "mutable",
                  "name": "processId",
                  "nameLocation": "9104:9:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6543,
                  "src": "9096:17:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_bytes32",
                    "typeString": "bytes32"
                  },
                  "typeName": {
                    "id": 6537,
                    "name": "bytes32",
                    "nodeType": "ElementaryTypeName",
                    "src": "9096:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_bytes32",
                      "typeString": "bytes32"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9095:19:15"
            },
            "returnParameters": {
              "id": 6542,
              "nodeType": "ParameterList",
              "parameters": [
                {
                  "constant": false,
                  "id": 6541,
                  "mutability": "mutable",
                  "name": "collateralAmount",
                  "nameLocation": "9148:16:15",
                  "nodeType": "VariableDeclaration",
                  "scope": 6543,
                  "src": "9140:24:15",
                  "stateVariable": false,
                  "storageLocation": "default",
                  "typeDescriptions": {
                    "typeIdentifier": "t_uint256",
                    "typeString": "uint256"
                  },
                  "typeName": {
                    "id": 6540,
                    "name": "uint256",
                    "nodeType": "ElementaryTypeName",
                    "src": "9140:7:15",
                    "typeDescriptions": {
                      "typeIdentifier": "t_uint256",
                      "typeString": "uint256"
                    }
                  },
                  "visibility": "internal"
                }
              ],
              "src": "9139:26:15"
            },
            "scope": 6544,
            "src": "9068:98:15",
            "stateMutability": "nonpayable",
            "virtual": true,
            "visibility": "internal"
          }
        ],
        "scope": 6545,
        "src": "342:8829:15"
      }
    ],
    "src": "40:9131:15"
  },
  "bytecode": "",
  "bytecodeSha1": "da39a3ee5e6b4b0d3255bfef95601890afd80709",
  "compiler": {
    "evm_version": "istanbul",
    "optimizer": {
      "enabled": true,
      "runs": 200
    },
    "version": "0.8.2+commit.661d1103"
  },
  "contractName": "Riskpool",
  "coverageMap": {
    "branches": {},
    "statements": {}
  },
  "dependencies": [
    "etherisc/gif-interface@3b0002a/Component",
    "OpenZeppelin/openzeppelin-contracts@4.8.2/Context",
    "etherisc/gif-interface@3b0002a/IAccess",
    "etherisc/gif-interface@3b0002a/IBundleToken",
    "etherisc/gif-interface@3b0002a/IComponent",
    "etherisc/gif-interface@3b0002a/IComponentEvents",
    "etherisc/gif-interface@3b0002a/IComponentOwnerService",
    "OpenZeppelin/openzeppelin-contracts@4.8.2/IERC165",
    "OpenZeppelin/openzeppelin-contracts@4.8.2/IERC20",
    "OpenZeppelin/openzeppelin-contracts@4.8.2/IERC721",
    "etherisc/gif-interface@3b0002a/IInstanceOperatorService",
    "etherisc/gif-interface@3b0002a/IInstanceService",
    "etherisc/gif-interface@3b0002a/IOracleService",
    "etherisc/gif-interface@3b0002a/IProductService",
    "etherisc/gif-interface@3b0002a/IRegistry",
    "etherisc/gif-interface@3b0002a/IRiskpool",
    "etherisc/gif-interface@3b0002a/IRiskpoolService",
    "OpenZeppelin/openzeppelin-contracts@4.8.2/Ownable"
  ],
  "deployedBytecode": "",
  "deployedSourceMap": "",
  "language": "Solidity",
  "natspec": {
    "kind": "dev",
    "methods": {
      "owner()": {
        "details": "Returns the address of the current owner."
      },
      "renounceOwnership()": {
        "details": "Leaves the contract without owner. It will not be possible to call `onlyOwner` functions anymore. Can only be called by the current owner. NOTE: Renouncing ownership will leave the contract without an owner, thereby removing any functionality that is only available to the owner."
      },
      "transferOwnership(address)": {
        "details": "Transfers ownership of the contract to a new account (`newOwner`). Can only be called by the current owner."
      }
    },
    "version": 1
  },
  "offset": [
    342,
    9171
  ],
  "opcodes": "",
  "pcMap": {},
  "sha1": "d33d7012d7c79d2a21de53ed457691326611c9a6",
  "source": "// SPDX-License-Identifier: Apache-2.0\npragma solidity 0.8.2;\n\nimport \"./IRiskpool.sol\";\nimport \"./Component.sol\";\n\nimport \"../modules/IBundle.sol\";\nimport \"../modules/IPolicy.sol\";\nimport \"../services/IInstanceService.sol\";\nimport \"../services/IRiskpoolService.sol\";\n\nimport \"@openzeppelin/contracts/token/ERC721/IERC721.sol\";\n\nabstract contract Riskpool is \n    IRiskpool, \n    Component \n{    \n    // used for representation of collateralization\n    // collateralization between 0 and 1 (1=100%) \n    // value might be larger when overcollateralization\n    uint256 public constant FULL_COLLATERALIZATION_LEVEL = 10**18;\n    string public constant DEFAULT_FILTER_DATA_STRUCTURE = \"\";\n\n    IInstanceService internal _instanceService; \n    IRiskpoolService internal _riskpoolService;\n    IERC721 internal _bundleToken;\n    \n    // keep track of bundles associated with this riskpool\n    uint256 [] internal _bundleIds;\n\n    address private _wallet;\n    address private _erc20Token;\n    uint256 private _collateralization;\n    uint256 private _sumOfSumInsuredCap;\n    uint256 private _maxNumberOfActiveBundles;\n\n    modifier onlyPool {\n        require(\n            _msgSender() == _getContractAddress(\"Pool\"),\n            \"ERROR:RPL-001:ACCESS_DENIED\"\n        );\n        _;\n    }\n\n    modifier onlyBundleOwner(uint256 bundleId) {\n        IBundle.Bundle memory bundle = _instanceService.getBundle(bundleId);\n        address bundleOwner = _bundleToken.ownerOf(bundle.tokenId);\n\n        require(\n            _msgSender() == bundleOwner,\n            \"ERROR:BUC-001:NOT_BUNDLE_OWNER\"\n        );\n        _;\n    }\n\n    constructor(\n        bytes32 name,\n        uint256 collateralization,\n        uint256 sumOfSumInsuredCap,\n        address erc20Token,\n        address wallet,\n        address registry\n    )\n        Component(name, ComponentType.Riskpool, registry)\n    { \n        _collateralization = collateralization;\n\n        require(sumOfSumInsuredCap != 0, \"ERROR:RPL-002:SUM_OF_SUM_INSURED_CAP_ZERO\");\n        _sumOfSumInsuredCap = sumOfSumInsuredCap;\n\n        require(erc20Token != address(0), \"ERROR:RPL-003:ERC20_ADDRESS_ZERO\");\n        _erc20Token = erc20Token;\n\n        require(wallet != address(0), \"ERROR:RPL-004:WALLET_ADDRESS_ZERO\");\n        _wallet = wallet;\n\n        _instanceService = IInstanceService(_getContractAddress(\"InstanceService\")); \n        _riskpoolService = IRiskpoolService(_getContractAddress(\"RiskpoolService\"));\n        _bundleToken = _instanceService.getBundleToken();\n    }\n\n    function _afterPropose() internal override virtual {\n        _riskpoolService.registerRiskpool(\n            _wallet,\n            _erc20Token, \n            _collateralization,\n            _sumOfSumInsuredCap\n        );\n    }\n\n    function createBundle(bytes memory filter, uint256 initialAmount) \n        public virtual override\n        returns(uint256 bundleId)\n    {\n        address bundleOwner = _msgSender();\n        bundleId = _riskpoolService.createBundle(bundleOwner, filter, initialAmount);\n        _bundleIds.push(bundleId);\n\n        emit LogRiskpoolBundleCreated(bundleId, initialAmount);\n    }\n\n    function fundBundle(uint256 bundleId, uint256 amount) \n        external override\n        onlyBundleOwner(bundleId)\n        returns(uint256 netAmount)\n    {\n        netAmount = _riskpoolService.fundBundle(bundleId, amount);\n    }\n\n    function defundBundle(uint256 bundleId, uint256 amount)\n        external override\n        onlyBundleOwner(bundleId)\n        returns(uint256 netAmount)\n    {\n        netAmount = _riskpoolService.defundBundle(bundleId, amount);\n    }\n\n    function lockBundle(uint256 bundleId)\n        external override\n        onlyBundleOwner(bundleId)\n    {\n        _riskpoolService.lockBundle(bundleId);\n    }\n\n    function unlockBundle(uint256 bundleId)\n        external override\n        onlyBundleOwner(bundleId)\n    {\n        _riskpoolService.unlockBundle(bundleId);\n    }\n\n    function closeBundle(uint256 bundleId)\n        external override\n        onlyBundleOwner(bundleId)\n    {\n        _riskpoolService.closeBundle(bundleId);\n    }\n\n    function burnBundle(uint256 bundleId)\n        external override\n        onlyBundleOwner(bundleId)\n    {\n        _riskpoolService.burnBundle(bundleId);\n    }\n\n    function collateralizePolicy(bytes32 processId, uint256 collateralAmount) \n        external override\n        onlyPool\n        returns(bool success) \n    {\n        success = _lockCollateral(processId, collateralAmount);\n        emit LogRiskpoolCollateralLocked(processId, collateralAmount, success);\n    }\n\n    function processPolicyPayout(bytes32 processId, uint256 amount)\n        external override\n        onlyPool\n    {\n        _processPayout(processId, amount);\n        emit LogRiskpoolPayoutProcessed(processId, amount);\n    }\n\n    function processPolicyPremium(bytes32 processId, uint256 amount)\n        external override\n        onlyPool\n    {\n        _processPremium(processId, amount);\n        emit LogRiskpoolPremiumProcessed(processId, amount);\n    }\n\n    function releasePolicy(bytes32 processId) \n        external override\n        onlyPool\n    {\n        uint256 collateralAmount = _releaseCollateral(processId);\n        emit LogRiskpoolCollateralReleased(processId, collateralAmount);\n    }\n\n    function setMaximumNumberOfActiveBundles(uint256 maximumNumberOfActiveBundles)\n        external override\n        onlyOwner\n    {\n        uint256 riskpoolId = getId();\n        _riskpoolService.setMaximumNumberOfActiveBundles(riskpoolId, maximumNumberOfActiveBundles);\n    }\n\n    function getMaximumNumberOfActiveBundles()\n        public view override\n        returns(uint256 maximumNumberOfActiveBundles)\n    {\n        uint256 riskpoolId = getId();\n        return _instanceService.getMaximumNumberOfActiveBundles(riskpoolId);\n    }\n\n    function getWallet() public view override returns(address) {\n        return _wallet;\n    }\n\n    function getErc20Token() public view override returns(address) {\n        return _erc20Token;\n    }\n\n    function getSumOfSumInsuredCap() public view override returns (uint256) {\n        return _sumOfSumInsuredCap;\n    }\n\n    function getFullCollateralizationLevel() public pure override returns (uint256) {\n        return FULL_COLLATERALIZATION_LEVEL;\n    }\n\n    function getCollateralizationLevel() public view override returns (uint256) {\n        return _collateralization;\n    }\n\n    function bundles() public override view returns(uint256) {\n        return _bundleIds.length;\n    }\n\n    function getBundle(uint256 idx) public override view returns(IBundle.Bundle memory) {\n        require(idx < _bundleIds.length, \"ERROR:RPL-006:BUNDLE_INDEX_TOO_LARGE\");\n\n        uint256 bundleIdx = _bundleIds[idx];\n        return _instanceService.getBundle(bundleIdx);\n    }\n\n    function activeBundles() public override view returns(uint256) {\n        uint256 riskpoolId = getId();\n        return _instanceService.activeBundles(riskpoolId);\n    }\n\n    function getActiveBundleId(uint256 idx) public override view returns(uint256 bundleId) {\n        uint256 riskpoolId = getId();\n        require(idx < _instanceService.activeBundles(riskpoolId), \"ERROR:RPL-007:ACTIVE_BUNDLE_INDEX_TOO_LARGE\");\n\n        return _instanceService.getActiveBundleId(riskpoolId, idx);\n    }\n\n    function getFilterDataStructure() external override pure returns(string memory) {\n        return DEFAULT_FILTER_DATA_STRUCTURE;\n    }\n\n    function getCapital() public override view returns(uint256) {\n        uint256 riskpoolId = getId();\n        return _instanceService.getCapital(riskpoolId);\n    }\n\n    function getTotalValueLocked() public override view returns(uint256) {\n        uint256 riskpoolId = getId();\n        return _instanceService.getTotalValueLocked(riskpoolId);\n    }\n\n    function getCapacity() public override view returns(uint256) {\n        uint256 riskpoolId = getId();\n        return _instanceService.getCapacity(riskpoolId);\n    }\n\n    function getBalance() public override view returns(uint256) {\n        uint256 riskpoolId = getId();\n        return _instanceService.getBalance(riskpoolId);\n    }\n\n    function bundleMatchesApplication(\n        IBundle.Bundle memory bundle, \n        IPolicy.Application memory application\n    ) public override view virtual returns(bool isMatching);\n\n    function _afterArchive() internal view override { \n        uint256 riskpoolId = getId();\n        require(\n            _instanceService.unburntBundles(riskpoolId) == 0, \n            \"ERROR:RPL-010:RISKPOOL_HAS_UNBURNT_BUNDLES\"\n            );\n    }\n\n    function _lockCollateral(bytes32 processId, uint256 collateralAmount) internal virtual returns(bool success);\n    function _processPremium(bytes32 processId, uint256 amount) internal virtual;\n    function _processPayout(bytes32 processId, uint256 amount) internal virtual;\n    function _releaseCollateral(bytes32 processId) internal virtual returns(uint256 collateralAmount);\n\n}",
  "sourceMap": "",
  "sourcePath": "/home/runner/.brownie/packages/etherisc/gif-interface@3b0002a/contracts/components/Riskpool.sol",
  "type": "contract"
}